我试图了解Datastax Cassandra驱动程序中的连接池,因此我可以在Web服务中更好地使用它。
我有该文档的1.0版。它说:
Java驱动程序异步使用连接,因此可以同时在同一连接上提交多个请求。
通过连接他们了解什么?连接到集群时,我们有:构建器,集群和会话。连接是哪一个?
例如,有以下参数:
maxSimultaneousRequestsPerConnection-与主机的所有连接上的并发请求数,之后将创建更多连接。
因此,在连接池的情况下(我所期望的),这些连接是自动创建的。但是连接到底是什么?集群对象?会议?
我试图确定要在我的Web服务中保持“静态”的内容。目前,我决定使Builder保持静态,因此对于每个调用,我都会创建一个新的Cluster和一个新的Session。这个可以吗?如果群集是Connection,则应该可以。但是吗?记录器说,现在,对于每个呼叫:
2013:12:06 12:05:50 DEBUG群集:742-使用联系人启动新群集
2013:12:06 12:05:50 DEBUG ControlConnection:216-[控制连接]刷新节点列表和令牌映射
2013:12:06 12:05:50调试ControlConnection:219-[控制连接]刷新架构
2013:12:06 12:05:50调试ControlConnection:147-[控制连接]已成功连接到...
那么,它每次都连接到集群吗?这不是我想要的,我想重用连接。
那么,连接实际上是Session吗?如果是这种情况,我应该保持集群静态,而不是Builder。
为了确保我尽可能重用连接,应该调用哪种方法?
没错,连接实际上在Session中,并且Session是您应提供给DAO以便写入Cassandra的对象。
只要使用相同的Session对象,就应该重用连接(可以将Session视为连接池)。
编辑(2017/4/10):我在@William Price one之后提出了这个答案。请注意,此答案已有4年历史了,与此同时,Cassandra发生了一些变化!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句