如何解决Docker和版本控制中的Cassandra
我是Cassandra的新手,现在我正尝试以测试模式启动集群。
当前,每个使用--net=host
选项在Docker容器中运行的Cassandra节点以及由FQDN解析的种子和侦听地址。到目前为止一切顺利。
但是有一个问题。每个容器都有绑定到$CASSANDRA_HOME/data
的卷。 Docker映像已构建为CentOS映像,可下载Cassandra tar和注入Dockerfile的配置。
现在,假设我要构建新版本的映像,我只想在cassandra-env.sh中更改堆大小(或尝试使用闪亮的新度量标准刮板)。
任何Cassandra升级教程都说preserve cassandra config
,但是什么充当节点标识符?是IP地址,FQDN吗?为集群定义了什么配置才能知道我没有添加新节点?种子和地址?还是rackdc.property中的机架名称也重要吗?节点如何决定应跳过自动引导阶段(并且将被跳过)?
关于数据。在cassandra_home / data中有commit_log文件夹。我应该将其保留在那里,当新图像启动时,它将使用所有保存的图像吗?还是有问题,最好不要绑定commit_log?预先感谢
解决方法
什么是节点的标识符?
它是节点的IP。 Cassandra节点在listen_address上相互通信。
为集群定义了什么配置才能知道我没有添加新节点?
如果您要更新的不是监听地址(其他地址),那么您就不会添加新节点。
种子和地址?
种子被新节点用来引导。他们想知道集群的拓扑是什么。它们在启动信息时与种子节点之一连接。 地址 Listen_Address-用于C 节点之间的节点间通信 RPC_Address-用于客户端服务器通信 Broadbast_address-用于公共连接,多站点连接。*
rackdc中的机架名称。属性也重要吗?
机架是用于跨区域或主机复制数据的逻辑分组。
节点如何决定应跳过自动引导阶段(并且将被跳过)?
如果通过autobootsrtapping进行操作,则意味着它应该首先从其他节点流式传输数据,然后将auto_bootstrap属性设置为false。默认情况下为true。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。