首先,介绍一下:SpringCLoud Alibaba的Nacos相对于SpringCloud而言,实现了Eureka和Config和Ribbon的作用,可以界面化的实现这些功能,简单实用,一站式解决分布式的问题。
针对上面介绍的三种作用,下面进行一一实现。(基于上一章改进代码,若看不懂,进入上一章)
本章讲解如何实现Ribbon负载均衡的作用(自定义访问策略)
目录
一、改造提供者服务
首先展示一下代码目录结构:
前提:成功注册服务到注册中心Nacos 。
新增controller进行测试,如下:
使用spring的value注解获取配置文件的端口号(上一章运行了两个提供者服务,端口号不同)
@RefreshScope注解是下一章配置中心的东西先不管,不用加。
@Sl4j是日志注解。方便使用log的方法。
二、改造消费者服务
先展示一下目录结构:
新增配置类:
使用@LoadBalanced注解启动负载均衡(基于ribbon实现,默认轮询方式)。
修改配置类:
设置调用方服务的service:与提供者服务的
application: name: nacos-provider
保持一致。
新增controller:
同提供者服务类似,通过spring的value注解获取配置里的url地址,通过restTemplate模板调用方法访问提供者服务的接口。
运行项目:
进入nacos查看:
运行成功。
通过postman进行消费者服务的接口测试(调用提供者服务的接口),如下:
81是消费者服务的端口,返回提供者服务的端口,每次调用返回不同的端口(以轮询的方式访问提供者服务的实例)。
三、自定义策略
针对上面的轮询策略,nacos可以实现自定义策略,如下:
进入服务列表,点击详情,进入详情界面,点击编辑按钮
编辑两个实例的权重:
结果如下:
当然仅仅这样改是不会生效的,还需要加一个配置,如下:
加在服务调用方的启动类上 。
四、演示
使用postman演示,如下:
平均下来差不到9次访问9003端口的实例,一次访问9004端口的实例。自定义负载均衡策略生效。
下一章实现nacos的配置中心功能。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/12765.html