Ribbon
Ribbon是Springcloud组件中比较重要的一个组件,起到了负载均衡的作用(相似作用的还有Feign,两者在负载均衡方面差不多,其他功能还是差距比较大的,但是其实Feign内部使用的也是Ribbon)
主要功能
说到负载均衡,其实很容易想到大名鼎鼎的nginx,那么为什么这里要使用Ribbon呢?其实Ribbon的负载均衡和nginx的负载均衡非常不一样,前者是客户端负载均衡,而后者是服务端负载均衡。怎么理解呢?通俗的来说,就是前者是在客户端的时候,就通过负载均衡算法,算出要去访问哪一台服务器;而后者则是先发送一个请求,至于这个请求会到达哪个服务器,则是nginx决定。
客户端负载均衡和服务端负载均衡最大的区别在于服务清单所存储的位置。在客户端负载均衡中,所有的客户端节点都有一份自己要访问的服务端清单,这些清单统统都是从Eureka服务注册中心获取的
特点
- 由客户端内部程序实现,不需要额外的负载均衡器软硬件投入。
- 程序内部需要解决业务服务器不可用的问题,服务器故障对应用程序的透明度小。
- 程序内部需要解决业务服务器压力过载的问题。