首页 > 解决方案 > 网络应用python中频繁访问数据库的最佳解决方案

问题描述

我有一个用 python 编写的网络服务器,客户端连接。它为客户端连接时存在的每个新客户端连接创建新线程。现在,当客户端连接时,服务器会继续进行数据库查询,以获取有关客户端的任何可能更新(如果有任何来自管理门户的更新)。

我为每个线程打开 db 连接,并在连接客户端时让它连接,但是当连接 1-2 k 客户端并且 db 有 1-2 个活动连接时,这将是一个问题。

然后我将其更改为关闭数据库连接并按需重新连接,但现在有 2-3k 客户端,服务器正在与数据库进行大量连接和断开连接。

我尝试了 MySQL 数据库池,但问题是 32 最大池大小对我来说不是一个解决方案。

任何人有任何其他想法或解决方案?

标签: pythonpython-2.7

解决方案


必须同时连接多个客户端的问题不是您只能通过代码解决的问题。当您的应用程序变得更大时,您必须在不同的机器上拥有同一个 python 服务器的多个实例。然后,您将使用Load Balancer负载均衡器将充当转发器。基本上,您的客户端将连接到它,然后负载均衡器会将数据转发到您的 python 服务器实例。

如果你想了解更多关于负载均衡的信息,这里有一些链接:

现在对于数据库,您可以只使用一个数据库连接并在线程之间共享它,而不是为每个客户端创建一个连接。


推荐阅读