Consul Service definition Address 和 Service Address 的区别
Difference between Consul Service definition Address and Service Address
Consul服务定义json如下
{
"Address": "192.168.10.10",
"TaggedAddresses": {
"lan": "192.168.10.10",
"wan": "10.0.10.10"
},
"CreateIndex": 51,
"ModifyIndex": 51,
"Node": "foobar",
"ServiceAddress": "172.17.0.3",
"ServiceEnableTagOverride": false,
"ServiceID": "32a2a47f7992:nodea:5000",
"ServiceName": "foobar",
"ServicePort": 5000,
"ServiceTags": [
"tacos"
]
}
现在根据 https://www.consul.io/docs/agent/http/catalog.html#catalog_service
提供的文档
地址和服务地址定义如下:
- Address:服务所在的Consul节点的IP地址
已注册
- ServiceAddress:服务主机的IP地址——如果为空,节点
应使用地址
一个。这是否意味着Address是consul server节点的地址,service address是服务所在节点的地址?
或
乙。这是否意味着 Address 是与服务一起驻留的领事代理人的地址。如果是这种情况是否意味着地址和服务地址相同?
以上哪个是正确的?
我想,Address 是 consul agent 的地址,而 ServiceAddress 是用于访问此服务的地址。这可以是相同的地址,但也可以不同。
例如,您可以让一台主机拥有多个接口,其中一个用于使 Consul 代理相互交互,另一个用于访问您的服务。
或者您可以在一个节点上部署多个微服务 Docker。您可以使用该节点的地址启动单个 Consul Agent,并在容器中注册多个微服务 运行 并通过容器内部 IP 地址相互通信。在这种情况下,您将获得服务信息,其中 Address 等于节点的 IP,ServiceAddress 等于具有服务的容器的 IP。
Consul服务定义json如下
{
"Address": "192.168.10.10",
"TaggedAddresses": {
"lan": "192.168.10.10",
"wan": "10.0.10.10"
},
"CreateIndex": 51,
"ModifyIndex": 51,
"Node": "foobar",
"ServiceAddress": "172.17.0.3",
"ServiceEnableTagOverride": false,
"ServiceID": "32a2a47f7992:nodea:5000",
"ServiceName": "foobar",
"ServicePort": 5000,
"ServiceTags": [
"tacos"
]
}
现在根据 https://www.consul.io/docs/agent/http/catalog.html#catalog_service
提供的文档地址和服务地址定义如下:
- Address:服务所在的Consul节点的IP地址 已注册
- ServiceAddress:服务主机的IP地址——如果为空,节点 应使用地址
一个。这是否意味着Address是consul server节点的地址,service address是服务所在节点的地址?
或
乙。这是否意味着 Address 是与服务一起驻留的领事代理人的地址。如果是这种情况是否意味着地址和服务地址相同?
以上哪个是正确的?
我想,Address 是 consul agent 的地址,而 ServiceAddress 是用于访问此服务的地址。这可以是相同的地址,但也可以不同。
例如,您可以让一台主机拥有多个接口,其中一个用于使 Consul 代理相互交互,另一个用于访问您的服务。
或者您可以在一个节点上部署多个微服务 Docker。您可以使用该节点的地址启动单个 Consul Agent,并在容器中注册多个微服务 运行 并通过容器内部 IP 地址相互通信。在这种情况下,您将获得服务信息,其中 Address 等于节点的 IP,ServiceAddress 等于具有服务的容器的 IP。