我们使用的是稍微修改过的社区中间层集群。这已经安装了 mesos-dns - 所以我们可以解析 master.mesos 和 x.marathon.mesos,没问题。 问题是我们应该使用哪个名称来访问 Cassandra 数据库(无论是使用 cqlsh 还是其他应用程序)?
我在文档中找到了以下内容:cassandra-dcos-node.cassandra.dcos.mesos ( https://docs.mesosphere.com/services/cassandra/ ) 但如果我们更改集群名称(比如“foo”)怎么办?哪个位被修改了?我已经尝试过所有组合,但还没有解决。
最佳答案
如果 Cassandra 在 DCOS 上运行(文档引用),集群名称是 dcos
。 Mesos注册的框架名称是cassandra.dcos
。正在运行的 Cassandra 服务器的任务名称是 cassandra.dcos.node
,
如果您将集群名称更改为“foo”,则框架名称现在为 cassandra.foo
,服务器任务名称现在为 cassandra.foo.node
.
要访问“foo”Cassandra 集群,您可以使用 cassandra-foo-node.cassandra.foo.mesos
。
现在解释如何:
由 mesos-dns 创建的 DNS 名称遵循特定的模式,所有这些都可以在官方文档中找到[1]。
为了总结此处的文档,mesos-dns 使用以下格式创建了一个 DNS 名称:taskName.frameworkName.mesos
。
在 Cassandra 的情况下,任务名称是 cassandra.dcos.node
which mesos-dns 变成 cassandra-dcos-node
因为它不是所有的 .
在任务名称中。框架名称 cassandra.dcos
允许包含 .
以保持不变。 mesos 是 TLD 的默认值。
当我们把它放在一起时,这就是 cassandra-dcos-node.cassandra.dcos.mesos
。
最初的意图是将名称命名为 node.dcos.cassandra.mesos
但由于时间限制和对 mesos-dns 工作方式的误解,这就是我们剩下的。希望将来可以清理干净。
关于dns - mesos-dns 在使用 Cassandra-mesos 框架时为访问 Cassandra 提供的服务名称是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31403882/