【发布时间】:2014-01-03 11:35:56
【问题描述】:
我正在使用带有 Cassandra 的 Storm (java)。
我的一个 Bolts 将数据插入 Cassandra。有没有办法在这个 bolt 的实例化之间保持与 Cassandra 的连接打开?
我的应用程序的写入速度很快。螺栓需要每秒运行几次,并且由于每次都连接到 Cassandra,因此性能受到了阻碍。
如果我可以有一个保持打开的静态连接,它会运行得更快,但我不确定在风暴中实现这一点。
澄清问题:
风暴拓扑中静态连接的范围是什么?
与其他消息系统不同,其他消息系统的“工作”在循环中进行,或者回调可以在循环外使用变量(可能是静态连接),风暴螺栓似乎在每次被调用时都会被实例化并且不能将参数传递给它们,那么如何使用与 cassandra 相同的连接?
【问题讨论】:
-
这个问题在没有 cmets 的情况下被否决了,这太荒谬了,如果需要,请向我询问更多信息。
-
感谢投票给 0 的人
-
大部分 Cassandra 驱动程序/客户端支持连接池。我认为您不需要保持连接打开。
-
据我了解,这不是连接池的用途。如果我有一个客户端应用程序,并且我实际上正在调用连接和断开连接,那么连接池对此不会有任何影响。
-
作为问题的扩展:何时以及如何在风暴拓扑中关闭与数据库的连接?例如如果我启动一个拓扑并且它运行了 6 个月,它会保持连接打开而不释放资源吗?
标签: cassandra connection apache-storm