Cassandra配置的address分类

前言

在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内部类]

点赞