非常感谢dubbo这个项目给我们带来的便利,但是现在有个问题,我们的dubbo服务运行在云端k8s里,在本地开发需要访问k8s里的dubbo提供者服务,目前我们的做法是每一个服务都暴露一个NodePort
,因为NodePort
的端口不能重复,每个服务需要定义一个端口,然后部署的时候指定对应的外网SLB IP
+端口
上报到注册中心用于本地开发,这样服务多起来管理起来非常麻烦,,于是我就想做一个七层负载然后复用一个ip,通过不同的application.name
来实现,但是我看了下目前dubbo协议请求header里并没有传递目标提供者的application.name
,所以无法实现。
在请求的时候,header中带上目标提供者的application.name
,当然这个应该是通过选项来开启,就类似于http协议的host请求头,在实现此基础之上,我们就可以实现dubbo负载网关和k8s dubbo ingress
,根据不同的提供者application.name
反向代理到对应的提供者服务上,从而复用同一个ip,在部署到k8s的时候只需要统一配置一个外网ip和端口就可以了。