zhoutianli518
zhoutianli518
这个问题我也发现了。服务绑定的端口是容器内的端口,而上报到注册中心的端口应该是宿主机的端口。比如内部IP和端口是IP1:Port1,上报到注册中心的IP和端口应该是宿主机的IP端口,比如IP2:Port2。 容器负载配置port2映射到port1。主机外的消费者看到的服务提供者的地址是IP2:Port2。因为消费者不能直接通过IP1:Port1访问服务。将请求发给IP2:Port2,然后宿主机将其转发到内部的容器实例IP1:Port1。 dubbo这么一改后,业务配置的绑定端口port1就无效了,直接监听端口DUBBO_PORT_TO_REGISTRY,即port2了。以前端口映射配置是port2->port1,现在就变成了port2->port2了。port1就没用了。
// registry port, not used as bind port by default String key = DUBBO_PORT_TO_REGISTRY; if (protocolConfigNum > 1) { key = getProtocolConfigId(protocolConfig).toUpperCase() + "_" + key; } String portToRegistryStr =...