Dns 访问部署在apache mesos代理上的微服务
客户端如何在不指定host agent ip地址和相关映射端口的情况下访问已部署的微服务 如果我们添加Mesos DNS作为客户端解析程序,我们只能获取代理ip地址,但它不会返回微服务实例及其相关端口的列表 假设webapp1有三个实例,如下所示: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 | | |
+---------+---------+
| 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.