我对Cassandra有疑问。 可以在许多IP上打开Cassandra客户端连接吗?
在我的服务器上,我有2个网卡(eth0和eth1),其IP为10.197.11.21(eth0)和192.168.0.45(eth1)和127.0.0.1(lo)。
我希望我的客户端使用这三个IP连接到Cassandra数据库 在localhost,10.197.11.21和192.168.0.45
目前我只能选择1个IP,它在cassandra.yaml文件中做了什么修改?
答案 0 :(得分:0)
您需要在cassandra.yaml中设置rpc_address: 0.0.0.0
请注意,将rpc_address
设置为0.0.0.0时,还必须将broadcast_rpc_address
设置为0.0.0.0以外的其他值(例如10.197.11.21)。
broadcast_ip_address
(旁注:cassandra实际上发送了所有IP地址,这只是它告诉客户端进行连接的IP地址)。即使应用程序仅分配了一个IP地址,这也允许应用程序自动发现集群中的所有节点。这还允许应用程序处理诸如节点脱机或添加新节点之类的情况。 即使您的broadcast_rpc_address
只能指向这两个IP地址之一,您的应用程序仍然可以连接到任何一个。但是,您的应用程序还将尝试通过群集发回的broadcast_rpc_address
连接到其他节点。您可以通过为应用程序提供集群中每个节点的地址的完整列表来解决此问题,但是最好的解决方案是构建一个driver-side address translator。