java - 通过程序或命令获取mesospehere dcos下运行的服务IPs端口
问题描述
我想连接到在 Mesosphere DC/OS 中作为服务运行的 Cassandra。是否有任何编程方式(任何 api 公开)来获取 Cassandra 端口和 ip 详细信息?
从命令我可以像下面这样连接......我想以编程方式做的同样的事情可能是使用 REST api ......或 Java 客户端连接到这些服务。
根据这个文档https://github.com/mesosphere/dcos-cassandra-service/blob/master/docs/connecting-clients.md
$ dcos cassandra --name=<service-name> connection
{
"address": [
"10.0.0.47:9042",
"10.0.0.50:9042",
"10.0.0.49:9042"
],
"dns": [
"node-0.cassandra.mesos:9042",
"node-1.cassandra.mesos:9042",
"node-2.cassandra.mesos:9042"
]
}
注意:这样做的原因是每次 cassandra IP 和端口发生变化。我必须在我的属性文件中手动调整以获取最新的详细信息。如果它通过程序很容易设置属性而无需手动交互。
解决方案
如果您使用 DNS 部分中的条目(如下所示),即使任务重定位到另一个节点,它们也不会改变
"node-0.cassandra.mesos:9042",
"node-1.cassandra.mesos:9042",
"node-2.cassandra.mesos:9042"
推荐阅读
- angular - 如何全局使用 scss 文件?
- python - Python:取消链接所有库并删除所有数据
- python - 关于时间序列数据python的条件语句
- python - 如何使用 findall 查找所有信息
- python - 如何将函数 Score() 的总和传递给函数 ScoreResult(),它说缺少 1 个位置参数
- python - 随机森林的交叉验证以选择重要特征
- java - 另一个 Maven “不再支持源选项 6。使用 7 或更高版本。”
- python-3.x - 请修复并将功能更改为类
- hash - 当您尝试登录时,网站如何知道使用什么盐
- python - 成功满足条件时如何停止for循环迭代?