gpt4 book ai didi

java - 如何选择最大连接池大小?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:22 24 4
gpt4 key购买 nike

<property name="hibernateProperties">
<props>
<prop key="hibernate.c3p0.max_size">?</prop>
</props>
</property>

这只是一个随机数猜测吗?或者是否有任何研究建议对特定用例使用特定范围?

最佳答案

好吧,假设您在谈论生产系统,那么“随机数猜测”绝对不是答案。实际上,“随机数猜测”永远不是生产环境中任何类型配置的答案。 “只接受产品的默认设置”也是如此。

连接池属性(例如 max_size)取决于几个因素:

  • 预期用途。例如,如果您期望 10 个并发用户的典型使用模式,偶尔会突然增加 20 个用户,那么即使您认为您的机器可以处理,将数字 50 设置为最大大小也没有什么意义。虽然乍一看似乎无害,但您必须记住,数据库连接是一种昂贵的资源,有时,您可能希望实际限制使用量以符合您的期望,即使只是为了测试您自己的假设并了解真实的、类似于生产的系统使用模式,并防止您的应用程序成为资源消耗者,从而可能影响其他应用程序。

  • 可用资源。如果您知道(而且这很容易验证)您的数据库一次只能接受 30 个连接,那么无论应用程序的使用模式如何,设置大于 30 的数字都是没有意义的。

  • 应用程序设计。您的应用程序是否主要使用短期连接?长期联系?您是否为 JDBC 调用设置了超时,因此您的 JDBC 调用从一开始就是有时间限制的?例如,当您知道将每个操作的超时设置为 30 秒时,您配置连接池的方式与您在知道您设置了超时 2 分钟。

  • 特定产品注意事项。我不确定 c3p0,但某些提供连接池机制的容器将它们自己的因素带入了等式。如果您正在使用容器提供的连接池功能,则应阅读该容器的文档,了解容器供应商是否对配置他们为您提供的连接池机制有所了解。

...只是不要猜测一个数字。

...并且不要只是假定产品的默认值。

关于java - 如何选择最大连接池大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13220409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com