cassandra.yaml中broadcast_address和broadcast_rpc_address有什么区别?

时间:2015-06-03 18:24:45

标签: cassandra bigdata

目标:我正在尝试了解配置我的Cassandra群集的最佳方法,以便跨多个不同网络方案的多个不同驱动程序可以正确地与之通信。

问题/问题:在阅读文档后,我不完全清楚这两个设置之间的区别:broadcast_address和broadcast_rpc_address,因为它与驱动程序连接和交互的方式有关与群集。我应该将哪一个或哪些组合设置与节点的可访问网络端点(客户端/驱动程序可获得的DNS记录)一起使用?

以下是来自datastax的broadcast_address的文档: (默认值:listen_address)note一个节点告诉集群中其他节点与之联系的IP地址。它允许公共和私人地址不同。例如,在拓扑中使用broadcast_address参数,其中并非所有节点都通过其私有IP地址访问其他节点。 如果您的Cassandra集群部署在多个Amazon EC2区域并且您使用EC2MultiRegionSnitch,请将broadcast_address设置为节点的公共IP地址,将listen_address设置为私有IP。

以下是来自datastax的broadcast_rpc_address的文档: (默认值:未设置)注意要广播到驱动程序和其他Cassandra节点的RPC地址。这不能设置为0.0.0.0。如果为空,则将其设置为rpc_address或rpc_interface的值。如果rpc_address或rpc_interfaceis设置为0.0.0.0,则必须设置此属性。

编辑:此问题与Cassandra 2.1版有关,可能在将来无关。

1 个答案:

答案 0 :(得分:9)

freenode上#cassandra的一位用户非常友好地回答了这个问题:

rpc系列设置适用于使用Thrift协议与cassandra通信的驱动程序。对于那些使用本机传输的驱动程序,将报告并使用broadcast_address。

我的测试用例证实了这一点。