我对 Cassandra 种子节点以及客户端如何连接到集群有点困惑。我似乎在文档中找不到这一点信息。
客户端是否仅包含种子节点列表,并且每个节点委托一个新主机供客户端连接?种子节点是否真的仅用于节点到节点的发现,而不是客户端的特殊节点?
每个客户端是否应该使用 DC 中的一小部分随机节点进行连接?
或者,每个客户端都应该使用 DC 中的所有节点吗?
回答我自己的问题:
Seeds
来自FAQ http://cassandra.apache.org/doc/latest/faq/index.html#what-are-seeds:
启动期间使用种子来发现集群。
也来自DataStax 文档 http://www.datastax.com/docs/1.0/cluster_architecture/gossip关于“八卦”:
种子节点的指定除了引导八卦过程之外没有其他目的
用于加入集群的新节点。种子节点不是单一的
故障点,也没有任何其他特殊目的
集群操作超出了节点引导的范围。
从这些细节来看,种子对于客户来说似乎没什么特别的。
Clients
来自DataStax 文档 http://www.datastax.com/docs/1.0/cluster_architecture/about_client_requests根据客户要求:
Cassandra 中的所有节点都是对等节点。客户端的读或写请求可以
转到集群中的任意节点。当客户端连接到节点并且
发出读或写请求,该节点充当协调器
对于特定的客户端操作。
协调员的工作是充当客户端之间的代理
应用程序和拥有数据的节点(或副本)
要求。协调器决定环中的哪些节点应该
根据集群配置的分区器获取请求并
副本放置策略。
据我所知,客户端连接的节点池只能是 DC 中的少数(随机?)节点,以允许潜在的故障。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)