SpringCloud微服务开发如何协同

场景:

1、SpringCloud开发,本地启动多个微服务系统开销大

2、同事A启动User服务,同事B也在本地启动User服务。那么两个服务都注册到Nacos上,前端同事调试访问A的User服务,很容易出现访问到同事B启动的User服务(导致开发混乱,无法debug到自己的服务),还要考虑到如果有同事在本地debug服务,也会影响到别的同事。

解决方案:

1、在公共机器上启动Nacos服务,MySQL,Redis等公共服务,共同使用即可减少本地开销

2、同事A,同事B,都在本地启动Gateway服务,使用公共机器的Nacos服务(例如10.21.81.26:8848)本地gateway的配置一定要配置ribbon。因为负载均衡,会导致同事A想要访问自己本地启动的User服务,却访问到了同事B启动的User服务,又或者服务器上的User服务(这样无法开发)所以一定要做一些规则,负载均衡本地优先的规则。

效果:只需要本地启动gateway和User服务。由于给gateway里的ribbon配置了优先本地,会先去调用本地的User服务,而不是公共机器或者其他同事的。(就算Feign调用,也是走网关,只要走了本地的网关,就是优先本地)

原理:

Gateway要获取Nacos下发的ip地址和服务名,做动态路由。

Gateway要集成ribbon,做负载均衡。

ribbon还得配置本地优先策略,以免服务冲突。

ip地址要在同一网段,否则无法通讯。

你可能感兴趣的:(SpringCloud微服务开发如何协同)