原文链接:Ribbon~负载均衡 – 编程屋
目录
1 前言
什么是负载均衡
负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器、组件)上进行执行。根据负载均衡发生的位置,一般分为服务端负载均衡和客户端负载均衡。
服务端负载均衡:发生在服务提供者一方,比如常见的nginx负载均衡。
客户端负载均衡:发生在服务请求一方,就是在发送请求之前选好了由哪个实例处理请求。
一般在微服务调用中都选择客户端负载均衡,也就是在服务调用的一方来决定服务由哪个提供者执行。
2 负载均衡实现
2.1 idea配置
因为本微服务是在订单微服务调用商品微服务。要想实现负载均衡首先需要将商品微服务变成两个,所以需要修改下idea的配置。
这样配置成功后,打开nacos注册中心,并且启动订单微服务和两个商品微服务。
发现,一个订单微服务和两个商品微服务已经注册成功。
2.2 Ribbon
2.2.1 ribbon实现负载均衡
ribbon是Spring Cloud的一个组件,它可以让我们使用一个注解就可以轻松的搞定负载均衡
1)在RestTemplate的生成方法上添加@LoadBalanced注解。
在订单微服务的启动类上添加 @LoadBalanced注解。
2)修改服务调用的方法
之前订单服务使用的是获取服务地址和服务端口来实现调用。
加上了负载均衡后,直接用服务地址就可以。
重新启动后,访问:http://localhost:8091/order/prod/2
发现在两个商品微服务上均有调用到。
ProductApplication2:
ProductApplication:
2.2.2 ribbon支持的负载均衡策略
如果想要切换策略,可以直接在修改配置文件
service-product: #调用的提供者名称 ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
以上只是部分内容,为了维护方便,本文已迁移到新地址:Ribbon~负载均衡 – 编程屋