首页 > 解决方案 > 通过程序或命令获取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 和端口发生变化。我必须在我的属性文件中手动调整以获取最新的详细信息。如果它通过程序很容易设置属性而无需手动交互。

标签: javascalacassandramesospheredcos

解决方案


如果您使用 DNS 部分中的条目(如下所示),即使任务重定位到另一个节点,它们也不会改变

 "node-0.cassandra.mesos:9042",
 "node-1.cassandra.mesos:9042",
 "node-2.cassandra.mesos:9042"

推荐阅读