什么是负载均衡
概念
负载均衡(Load Balance)就是将请求根据实际场景和业务需求分配到多台节点服务器上,从而缓解压力。
负载均衡的好处:
缓解了服务器压力,带给用户良好的使用体验。服务器宕机不会直接GG
负载均衡的策略:
round robin(轮询)
random(随机)
weight(权重)
fair(按响应时长,三方插件)
url_hash(url的hash值)
ip_hash(ip的hash值)
least_conn(最少连接数)
ribbon与nginx有什么区别
nginx
Nginx是客户端所有请求统一交给Nginx,由Nginx进行实现负载均衡请求转发,属于服务器端负载均衡。
ribbon
在调用接口的时候,先获取Eureka上的注册列表,之后缓存在jvm本地,在本地使用RPC远程调用。属于客户端负载均衡。
ribbon概述
ribbon也是Netflix旗下 Spring Cloud Ribbon基于Netflix Ribbon进行了封装,在微服务中扮演着重要角色。我们为ribbon配置好服务提供者地址列表后,ribbon可以帮我们分配消费者的请求。
ribbon的负载均衡算法
ribbon默认提供了轮询、随机,同时也支持自定义负载均衡算法
ribbon结合eureka
都是一个爸爸-》netflix当然无缝链接啦如下图,画的有点潦草大家多多包涵:
下面开始实践,先导入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
添加依赖
<dependency>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon-eureka</artifactId>
<version>2.2.5</version>
</dependency>