- 1)初始化负载均衡算法
- 2)权重配置
- 3)测试
- 4)注意的点
整个项目的架构图还是:
如上图,如果此时用户打车成功,会调用订单服务,订单服务会修改司机状态,此时会调用 hailtaxi-driver ,如果是生产环境,每个节点一定是集群状态,比如有2个 hailtaxi-driver 节点,此时如何实现负载均衡?
我们可以发现服务注册到Nacos中,有一个权重属性,这个权重属性就是Nacos的负载均衡机制,此时需要用到Nacos的负载均衡策略 NacosRule ,我们可以在程序中先初始化负载均衡算法,再到bootstrap.yml中配置权重。
1)初始化负载均衡算法在hailtaxi-order的主启动类中初始化负载均衡算法:
@Scope(value = "prototype")
@Bean
public IRule nacosRule() {
return new NacosRule();
}
2)权重配置
为了演示集群效果,我们把 hailtaxi-driver 复制2份,端口分别为18081、18083
在上图我们配置了18083的权重,再来bootstrap.yml中配置18081的权重:
为了方便查看调用了哪个节点,我们把每个节点的端口号输出。然后启动三个项目,再请求打车测试发现服务切换以1:2的调用比例执行。
如果我们把算法NacosRule()注释,默认就是和 Ribbon 集成,和 Ribbon 默认开启,可以通过如下配置实现关闭或开启:



