背景问题:
在开发阶段,我们多个微服务之间要进行联调,通常会搭建一个联调环境,例如该联调环境就放到云服务器上。
这个时候我们可能会如下诉求:
- 本地的微服务应用conusmer,可以访问云端的nacos和云端的微服务应用provider
- 云端的微服务应用provider,可以访问本地的微服务应用consumer
解决方案:
我们可以将云端某台云服务器作为跳板机,通过这台机器的SSH加密隧道和端口转发功能来实现
- consumer-》provider
- 通过跳板机SSH的socks代理实现
- provider-》consumer
- consumer注册到nacos,应用的注册IP为ECS跳板机IP,端口为SSH远端端口转发的端口
- 启动跳板机SSH的远端端口转发
实践操作:
- consumer-》provider
- 通过跳板机SSH的socks代理实现
-
本地使用代理软件,拦截访问云端的ip时,实现通过socks代理访问(例如用proxifier)
- provider-》consumer
- consumer注册到nacos,应用的注册IP为ECS跳板机IP,端口为SSH远端端口转发的端口
- provider在云端部署
- consumer在本地部署,consumer自身服务的注册地址用ECS跳板机内网的IP
- 启动跳板机SSH的远端端口转发