SpringCloudAlibaba→Nacos:负载均衡


Nacos负载均衡

整个项目的架构图还是:
在这里插入图片描述

在这里插入图片描述
如上图,如果此时用户打车成功,会调用订单服务,订单服务会修改司机状态,此时会调用 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的权重:
在这里插入图片描述

3)测试

为了方便查看调用了哪个节点,我们把每个节点的端口号输出。然后启动三个项目,再请求打车测试发现服务切换以1:2的调用比例执行。
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

4)注意的点

如果我们把算法NacosRule()注释,默认就是和 Ribbon 集成,和 Ribbon 默认开启,可以通过如下配置实现关闭或开启:
在这里插入图片描述


文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录