前言
在Cassandra的配置文件里面有诸多的address,如listen_address、rpc_address等,那么这些address分别的用处是什么。在这里简单的介绍一下
note:版本3.11.2
在Cassandra的配置文件里面存在以下的address:
- listen_address
- broadcast_address
- listen_on_broadcast_address
- rpc_address
- broadcast_rpc_address
listen_address
默认是localhost。
该配置是为了告诉集群中其他节点如何连接到该节点上。一个集群中该节点的address必须唯一,因为该地址就像一个独一无二的身份id,只有知道该连接,Cassandra集群才可以建立连接
可以设置为空。Cassandra通过InetAddress.getLocalHost()可以从系统获取本地地址。
如果Cassandra找不到正确的地址,你可以指定IP地址或者主机名称。
如果是单节点集群,你可以使用默认配置(localhost)。
永远不要指定0.0.0.0,总是错的。
broadcast_address
默认是被注释掉的。默认值1.2.3.4
广播地址,用来向其他Cassandra节点发送广播
如果设置为空,将采用与listen_address一样的地址
listen_on_broadcast_address
默认是注释掉的。默认值false
当使用多个物理网络接口时,把该项设置为true,监听除了listen_address之外的broadcast_address,从而运行节点可以在两个接口中通信
rpc_address
默认值localhost
Thrift RPC 服务和本地传输服务都会使用该地址,简单的可以理解为client与Cassandra服务端通信的地址
如果不设置该项,将会采用listen_address的设置
该配置可以设置为0.0.0.0,但是如果这样设置了,你必须设置broadcast_rpc_address为其他地址
broadcast_rpc_address
默认注释掉。默认值1.2.3.4
rpc地址广播到驱动和其他节点上。该节点不能被设置为0.0.0.0。
如果该配置设置为空将会默认使用rpc_address的地址。
如果rpc_address设置为0.0.0.0,该配置必须设置一个地址。
各有什么用处
上面基本上就是对配置文件里面的翻译,但是看完之后,还是不清楚到底是干什么用的。下面就简单的介绍一下
- Cassandra节点之间的通信采用的是listen_address
- Client连接到服务端用的是rpc_address。有两种方式,thrift和NativeTransport(CQL)这两个都是用的rpc_address。接口不一样。如果rpc_address没设置就用listen_address
上面两个是比较常用的,必须要区分清楚,否则会很混乱。其他的我还没有玩透,所以就不说了,用过的朋友可以讲一下。
关于内部类的详细文章可以参考目录 [smxknife’s Java内部类]