Java 单节点Cassandra群集的限制是什么?
我正在用卡桑德拉和奥普施特做实验。在Opscenterd的日志文件中,我找到了这一行 2015-07-29 16:10:16+0000[]错误:调用CreateClusterConfController时出现问题(SingleNodeProvisioningError):由于单节点群集的限制,OpsCenter将无法与Datastax代理通信,除非列出 cassandra.yaml中的en_地址/广播_地址设置为172.17.42.1。继续之前,请确保这些匹配 因为我在不同的Docker容器中部署了Cassandra和Opscenter,所以我必须将Java 单节点Cassandra群集的限制是什么?,java,docker,cassandra,opscenter,nosql,Java,Docker,Cassandra,Opscenter,Nosql,我正在用卡桑德拉和奥普施特做实验。在Opscenterd的日志文件中,我找到了这一行 2015-07-29 16:10:16+0000[]错误:调用CreateClusterConfController时出现问题(SingleNodeProvisioningError):由于单节点群集的限制,OpsCenter将无法与Datastax代理通信,除非列出 cassandra.yaml中的en_地址/广播_地址设置为172.17.42.1。继续之前,请确保这些匹配 因为我在不同的Docker容器中部
listen_address
设置为容器的内部IP(因为Cassandra坐在容器中对其主机一无所知),并将广播_address
设置为相应主机的网桥IP。如果将Cassandra部署在单独网关后面的机器上(如AWS EC2,其中每个实例都有一个私有和一个公共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
中的local\u address
设置为172.17.42.1
,这应该可以解决问题。这是Opscenter限制吗?因为卡桑德拉过去只有一个地址(收听和广播是一样的)。Opscenter还没有适应最新的Cassandra吗?谢谢arre,在address中设置local\u address
。yaml
成功了。