从前面几章开始从0搭建SpringCloud项目,再逐步进行优化,加入其它组件。
上一章加入了feign组件,这次讲解一下我对ribbon的认识,ribbon是做负载均衡的,feign其实是对ribbon的一个整合加强,里面已经包含了ribbon,feign是对其他的服务的接口进行请求,请求时就已经使用了负载均衡的策略,比如请求多个商品服务的实例接口,具体使用哪一个呢,这就需要考虑负载均衡,就需要采用ribbon,feign的依赖里面已经加入了ribbon的依赖,所以使用feign就不需要再单独引入ribbon的依赖了,下面我写一个demo来演示具体怎么负载均衡的,注意feign使用的默认是轮询的策略,演示的也是轮询,就是请求服务实例挨个一个一个来。
本章是接着上一章进行的,现结构如下:
第一步:新建一个测试的接口
跟前面一章一样,假设是product服务请求account服务的接口,所以假设有多个account服务的实例,因此在account服务里面新增测试接口(看不懂的地方可以去翻前面几章),如下:
接口返回当前实例的端口号(每个服务是唯一的),采用value注解的方式从配置中获取,如下:
第二步:修改product服务
1、新增远程请求接口:
2、新增controller:
第三步:启动多个account服务实例(便于轮询测试)
1、
2、
3、 添加新实例的端口号:(-Dserver.port=7070)
5,点击ok,运行即可。
可以看到account服务跑了两个实例即可。
第四步:演示
点击两次send,请求两次接口,可以看到如下结果:
返回的是两个服务的端口号,相比到此你也跟我一样明白feign里面ribbon负载均衡的大概意思了。