Java 固定线程程序的连接池大小

Java 固定线程程序的连接池大小,java,connection-pooling,spring-integration,single-threaded,Java,Connection Pooling,Spring Integration,Single Threaded,我有一个固定线程的java程序。它是通过Spring集成和ActiveMQ实现的。 这里的固定线程意味着程序有多个线程,但运行时的线程数不变。 现在我需要为它设置连接池大小,所以我应该知道: 它有多少线程 它们中的哪一个可以同时连接到DB。 1。我使用visualVM工具 我可以使用visualVM进行2?怎样 有没有其他解决这个问题的方法? 依我看,连接池的大小应该由您的需求和数据库负载决定,而不是由可用线程的数量决定。因此,例如,如果您有100个可用线程,您可能仍然不需要100个连接,并且连

我有一个固定线程的java程序。它是通过Spring集成和ActiveMQ实现的。 这里的固定线程意味着程序有多个线程,但运行时的线程数不变。 现在我需要为它设置连接池大小,所以我应该知道:

它有多少线程 它们中的哪一个可以同时连接到DB。 1。我使用visualVM工具

我可以使用visualVM进行2?怎样 有没有其他解决这个问题的方法?
依我看,连接池的大小应该由您的需求和数据库负载决定,而不是由可用线程的数量决定。因此,例如,如果您有100个可用线程,您可能仍然不需要100个连接,并且连接池大小为10就足够了。此外,连接池应该是抽象的,线程从中访问连接池,所有线程都应该能够从连接池中获取连接的句柄。VisualVM将为您提供所有线程,而不仅仅是池中的线程。即使这个数字是42,它也不能给出生产中的最佳数量。这同样适用于数据库连接。您需要更好地了解您的应用程序才能获得最佳数量。@Scorpion程序中的线程数量与用户数量无关。它与程序结构有关。低可伸缩性是通过运行同一程序的多个实例而不是增加线程数来实现的。请求在ActiveMQ队列中等待,而不是在线程池的队列中等待。