通过程序或命令获取mesospehere dcos下的服务IPs ports 运行

Get the service IPs ports running under mesospehere dcos through program or command

我想连接到 Cassandra,它是 运行 作为 Mesosphere DC/OS 中的一项服务。是否有任何编程方式(任何 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"