我已经创建了一个基于 Java 的服务器,它将监听来自客户端的数据。
当服务器接收到数据时,它必须解析它并在数据库中更新它。
客户端发送数据的频率很高,比如每 2-3 秒一次,客户端数量可以从 200-1000 不等。
我所做的是服务器不断地监听来自客户端的数据。
当它接收到数据时,它会启动一个新线程(对于每个客户端来说都是单独的线程)来解析数据并在数据库中更新它。
我只使用一个与数据库的连接来更新每个客户端的信息。
问题有时是先前的请求未完成并且客户端发送了另一个请求,这对其他客户端来说也在增加,因为我对所有客户端使用相同的数据库连接。
我需要建议来提高性能,是否应该为每个客户端创建单独的连接,否则我应该怎么做?
编辑:- 任何人请帮助代码。 说如果我正在处理 600-700 客户端发送数据并根据请求为每个客户端创建单独的线程然后中断它。那么我的数据库池大小应该是多少?。 更多线程也在并行运行,从而与数据库建立连接。如果正在处理客户端数据,我需要等待吗?但就我而言,我无法保存客户数据。我该如何处理? 请提出建议。
最佳答案
事先创建一个连接池。每当有新请求出现时,为该请求提供一个免费的连接。这样,您就不会动态连接/断开连接,并且仍然可以获得连接可用性。
关于java - 在多线程服务器中处理数据库连接时出现问题 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34251145/