【发布时间】:2012-09-18 13:04:35
【问题描述】:
当集群中的一些 cassandra 服务器宕机时,phpcassa 需要花费大量时间来响应。
从逻辑上讲,phpcassa 应该连接到正在运行的节点并获取数据,而不是尝试连接到关闭的节点。
有人知道 phpcassa 是如何工作的吗? 它在下节点情况下的行为是什么?
【问题讨论】:
当集群中的一些 cassandra 服务器宕机时,phpcassa 需要花费大量时间来响应。
从逻辑上讲,phpcassa 应该连接到正在运行的节点并获取数据,而不是尝试连接到关闭的节点。
有人知道 phpcassa 是如何工作的吗? 它在下节点情况下的行为是什么?
【问题讨论】:
检查make_conn函数here和ConnectionPool的最后几行@constructor
所以,首先 PHPCassa 随机打乱你的服务器列表,
然后它会尝试在一个周期内连接到列表中的每个服务器两次,前提是在第一个周期后队列长度为零 [make_conn]
否则它会在第一次成功连接时返回
还请记住,您的 make_conn 函数不是从构造函数中调用的。需要时会调用它。源代码很简单,你可以通过它来获得更多的意义
【讨论】: