我正在按照本指南https://docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/operations/opsAddDCToCluster.html添加新的 DC。我开始我的节点
docker run -d \
-e CASSANDRA_CLUSTER_NAME='my cluster name' \
-e CASSANDRA_AUTO_BOOTSTRAP=true \
-e CASSANDRA_LISTEN_ADDRESS= \
-e CASSANDRA_ENDPOINT_SNITCH=GoogleCloudSnitch \
-e CASSANDRA_NUM_TOKENS=8 \
-e CASSANDRA_RPC_ADDRESS=0.0.0.0 \
-e CASSANDRA_SEEDS=127.0.0.1:7000,<seeds> \
-e CASSANDRA_ALLOCATE_TOKENS_FOR_LOCAL_REPLICATION_FACTOR=1 \
-p 9042:9042 \
-p 7000:7000 \
-p 7001:7001 \
-p 7199:7199 \
-p 9160:9160 \
-p 9142:9142 \
--restart always \
--name cassandra cassandra:4.1
该指令说 listen_address 将正确获取主机的 IP 地址,但在启动节点后,listen_address 说的localhost
不是主机的 IP 地址。这会阻止该节点与现有数据中心中的其他节点同步。我应该怎么做才能使 listen_address 指向节点的 IP 地址?
您引用的说明特定于DataStax Enterprise (DSE),它是基于开源 Apache Cassandra 构建的基于订阅(付费)的企业版本。
DSE 具有特定于付费版本的企业功能,这些功能在免费开源版本中不可用。
由于您安装的是开源 Cassandra,因此您需要显式配置监听地址,否则它将默认为
localhost
. 它不会自动设置为节点的 IP 地址。作为旁注,您不应将种子列表配置为,
localhost
因为它将无法与其他节点形成集群。您应该使用其他节点可以在网络上与之通信的 IP 地址配置种子列表。干杯!