使用场景
分布式时基础服务特别多,且服务间相互调用,你本地写代码业务的时候不想启动那么多服务或者电脑带不动那么多服务或者你和别人都在使用同一个服务调试时,你可以自己本地和公司内部的测试环境共用服务,只启动自己修改的服务和geteway服务即可
例如服务分为两层,一层gateway,一层基础服务api,多层的话就nacos层级往下调用,以下为两层举例
1.只需要在nacos的gateway配置文件里面配置
代码语言:javascript复制system-api: #这个是基础服务api服务名字,多个基础服务就配置多个即可
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
2.然后在sprincloud基础服务的yml文件配置
代码语言:javascript复制spring:
cloud:
nacos:
discovery:
cluster-name: test1 #自己的标识服务名,每个人不一样就可以
3.启动之后就可以在nacos上面就可以看到不同的集群服务
4.前端调用或自己测试时就调用你本地的geteway服务即可
原理解释:
com.alibaba.cloud.nacos.ribbon.NacosRule 负载均衡策略
- 优先选择同集群服务实例列表
- 本地集群找不到提供者,才去其它集群寻找,并且会报警
- 确定了可用实例列表后,再采用随机负载均衡挑选实例