我正在通过hikari cp clojure库在clojure应用程序中使用hikaricp。
该应用程序服务于多个客户端,这些客户端都有自己的mysql数据库和数据库用户。每个客户端都有自己的hikaricp连接池,据我所知,这是必需的,因为每个客户端都有一个专用的数据库用户。在添加了一个新的客户端之后,我开始从mysql中得到间歇性的“连接太多”错误。我猜默认池大小(每个客户端10个连接)加起来就是太多的连接(比mysql中的max\u connections默认设置151还要多)。
总体/每客户端数据库负载不是很大。
简单地减少每个客户机的连接数似乎很麻烦,因为每当添加新客户机时,池大小就必须减小。
只需将max_connections设置为与客户端数量成比例的数字,比如50+[客户端数量]*10,安全吗?
或者有没有一种方法可以使用同一个池连接到不同的数据库(使用不同的数据库用户)?
1条答案
按热度按时间vltsax251#
下面是一个不使用连接池的示例测试文件。可以为单个命令、一组命令或每个事务创建新的db连接:
下面是一个不同的文件,展示了hikari db池的使用。
我建议你做一个分叉的项目,删除所有的连接池的东西,并尝试运行它。您可以使用(jdbc/with db connection…)
or
(jdbc/with db connection…)`将多个命令分组到单个db连接中(如果以后要添加)。