SpringCloud学习——Ribbon负载均衡

简介

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 、负载均衡的工具。主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。

初步配置

前面一直强调,Ribbon 是基于客户端的负载均衡,所以们需要对消费者端做手脚,而不是服务提供端。在之前的博客上已经配置好了消费者服务,现在对其进行更改。

第一步

在消费者的pom.xml中添加相关依赖,因为Ribbon要和Eureka整合才能发挥强大的功能,所以在引入 Ribbon 依赖的同时,也要引入 Eureka 的依赖。此时这个消费者,也是一个 Eureka 的客户端了,但是它只需要消费,不需要注册到注册中心。

第二步

修改消费者微服务的 配置文件,需要加上注册中心的地址。现在消费者不直接去调用服务提供者了,而是去注册中心找注册了的服务,再通过路径匹配,Ribbon转发到相应的请求,最终返回数据。Eureka集群已经在之前的博客中配好了。
配置如下:

第三步

集成了Ribbon之后,我们访问微服务,可以不再去关心 ip + port了,我们可以直接通过微服务名称去调用。之前在建立消费者模块的时候,采用的是 来实现不同微服务之间的调用,我们需要做如下设置:

在注入Bean的方法上加上 注解。随后在消费者的controller中,将原来的URL替换成微服务的名称。这个注解也是开启负载均衡效果的注解,下面再说。

因为消费者也集成了 eureka-client,消费者也是一个eureka的客户端。所以要在主启动类上加上 注解。

第四步

启动eureka集群,启动服务提供者,启动消费者服务。进行测试。
访问 http://localhost/user/get 路径,成功得到数据。

SpringCloud学习——Ribbon负载均衡

第二步

为每个微服务都创建一个对应的数据库。

以前的单体架构可能一个项目就是一个数据库,里面多张表。而现在微服务架构,每个微服务都可以拥有自己独立的数据库。

建库建表语句

来源:血莲丹

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月10日
下一篇 2021年10月10日

相关推荐