单节点Cassandra集群的局限性是什么?
我正在试验Cassandra和Opscenter。 在Opscenterd的日志文件中,我find了这一行
错误:调用CreateClusterConfController(SingleNodeProvisioningError)时出现问题:由于单节点群集的限制,OpsCenter将无法与Datastax代理进行通信,除非列表en_address / broadcast_address在cassandra.yaml中设置为172.17.42.1。 继续之前请确保这些匹配。
因为我在不同的Docker容器中部署了Cassandra和Opscenter,所以我必须将listen_address
设置为容器的内部IP(因为坐在容器中的Cassandra对它的主机一无所知)并将broadcast_address
设置为相应主机的桥IP。 如果您将Cassandra部署在独立网关后面的计算机上(如AWS EC2,其中每个实例都有私有IP和公有IP),则这是正常的设置。
问题1 :单节点集群的局限性究竟是什么?
问题2 :在这种情况下我应该如何解决这个问题?
谢谢
问题1:单节点集群的局限性究竟是什么?
OpsCenter(通过底层的python驱动程序)从Cassandra的system
表(即system.peers
和system.local
)读取集群信息,其中大部分信息来自system.peers
,包括每个节点的广播接口。
但是,该表不包含关于节点本身的信息,仅包含关于其对等点的信息。 如果没有对等方,则无法从Cassandra本身获取广播地址,这就是OpsCenter用于将实际的Cassandra实例与内部表示关联起来的方式。 在这种情况下,OpsCenter使用您指定的任何地址作为种子(此处为172.17.42.1
),当代理报告不同的IP(他们通过JMX获取Cassandra的广播地址)时,OpsCenter将丢弃这些消息。
问题2:在这种情况下我应该如何解决这个问题?
尝试将address.yaml
中的172.17.42.1
设置为172.17.42.1
,这应该可以做到。
- 如何使用docker为scylladb设置机架和数据中心名称?
- 如何更改cassandra dockerconfiguration
- Cassandra,JNA,Docker和CAP_IPC_LOCK
- 无法在Spark上运行Docker上的Cassandra
- Docker运行Java -JAR文件来创buildCassandra KeySpaces。 但它没有创造
- 如何使用Cassandra和Elasticsearch的Docker来设置JanusGraph?
- 如何备份在Docker容器中运行的cassandra
- 使用Docker Swarm的Cassandra集群 – 从外部访问
- 使用docker在AWS EC2上设置和缩放titan / cassandra