Dns 访问部署在apache mesos代理上的微服务

Dns 访问部署在apache mesos代理上的微服务,dns,load-balancing,microservices,mesos,marathon,Dns,Load Balancing,Microservices,Mesos,Marathon,客户端如何在不指定host agent ip地址和相关映射端口的情况下访问已部署的微服务 如果我们添加Mesos DNS作为客户端解析程序,我们只能获取代理ip地址,但它不会返回微服务实例及其相关端口的列表 假设webapp1有三个实例,如下所示: +---------+---------+ | agent1 | agent2 | +---------+---------+ | | | | ins1:11 | ins3:13 | | |

客户端如何在不指定host agent ip地址和相关映射端口的情况下访问已部署的微服务

如果我们添加Mesos DNS作为客户端解析程序,我们只能获取代理ip地址,但它不会返回微服务实例及其相关端口的列表

假设webapp1有三个实例,如下所示:

+---------+---------+
| agent1  | agent2  |
+---------+---------+
|         |         |
| ins1:11 | ins3:13 |
|         |         |
| ins2:12 |         |
|         |         |
+---------+---------+
应允许客户端直接访问其中一个实例(无需参考agent1和agent2 ip地址或11、12和13端口号)。例如:

$ lynx webapp1.marathon.mesos

请使用马拉松负载平衡器检查标题
X-Marathon-App-Id

例如:

curl -v -H "X-Marathon-App-Id: /your-app-id-in-marahton" -X GET \
  http://marathon-lb.marathon.mesos:9091/yourAppEndPoint
更多信息。

查看

DNS可以在您发出请求时提供有关服务端口的信息。它与大多数客户端不兼容,因此需要手动执行。Mesos DNS具有

以下是文档中的一个示例:

SRV记录 SRV记录将服务名称与主机名和IP端口相关联。 对于框架
framework
启动的任务
task
,Mesos DNS为服务名称
\u task.\u protocol.framework.domain
生成SRV记录,其中
protocol
udp
tcp
。 例如,其他Mesos任务可以通过查找
\u search来发现
马拉松
框架启动的服务
search
。\u tcp.marathon.Mesos

$dig\u search.\u tcp.marathon.mesos SRV
;  挖掘9.8.4-rpz2+rl005.12-P1 _搜索。_tcp.marathon.mesos SRV
;; 全局选项:+cmd
;; 得到答案:

;; ->>Header看一看问题是关于Mesos DNS而不是marathon lb
$ dig _search._tcp.marathon.mesos SRV

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> _search._tcp.marathon.mesos SRV
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33793
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;_search._tcp.marathon.mesos.   IN SRV

;; ANSWER SECTION:
_search._tcp.marathon.mesos.    60 IN SRV 0 0 31302 10.254.132.41.