在上篇博客《Spring Cloud版——电影售票系统<—>微服务注册与发现》中,已经实现了微服务的注册与发现。启动各个微服务时,Eureka Client会把自己的网络信息注册到Eureka Server。然而,这样的架构依然有一些问题,比如负载均衡。一般来说,各个微服务都会部署多个实例。那么服务消费者要如何将请求分摊到多个服务者实例上呢?
一、Ribbon简介
Ribbon 是 Netflix 发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon 默认为我们提供了很多的负载均衡算法,例如轮询,随机等。当然,我们也可以为Ribbon实现自定义的负载均衡算法。
在Spring Cloud中,当Ribbon 和 Eureka 配合使用时, Ribbon可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。
Eureka 与 Ribbon 配合使用架构如下:
Tips:为项目引入Ribbon的依赖,Ribbon的依赖是:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
但通常都不用单独添加这个依赖的,因为这个依赖已经包含在spring-cloud-starter-ribbon,无须再次引入。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
--------------------------------------
版权声明:本文为【PythonJsGo】博主的原创文章,转载请附上原文出处链接及本声明。
博主主页:https://my.oschina.net/u/3375733
本篇文章同步在个人公众号: