【发布时间】:2018-08-03 04:36:50
【问题描述】:
给定一个集群,不同的节点究竟是如何标记为远程/本地的?它取决于每个查询吗? 目前,我的想法是这样的->对于客户端发送到 Cassandra 集群的每个查询,将选择一个协调器节点(基于负载平衡策略)。与协调节点属于同一数据中心的所有节点将被称为本地节点,其余所有节点将是给定查询的远程节点。 它是否正确?
【问题讨论】:
给定一个集群,不同的节点究竟是如何标记为远程/本地的?它取决于每个查询吗? 目前,我的想法是这样的->对于客户端发送到 Cassandra 集群的每个查询,将选择一个协调器节点(基于负载平衡策略)。与协调节点属于同一数据中心的所有节点将被称为本地节点,其余所有节点将是给定查询的远程节点。 它是否正确?
【问题讨论】:
是的,从协调员的角度来看是正确的。但也有一个驱动程序的角度 - 当您使用具有 DC 感知策略的驱动程序时,您指定哪个 DC 对您来说是本地的(在 C++ 中通过 cass_cluster_set_load_balance_dc_aware 函数),驱动程序使用此数据来选择正确的节点(基于其他政策)。
【讨论】: