【云原生&微服务一】SpringCloud之Ribbon实现负载均衡详细案例(集成Eureka、Ribbon)

网友投稿 272 2022-08-23

【云原生&微服务一】SpringCloud之Ribbon实现负载均衡详细案例(集成Eureka、Ribbon)

一、负载均衡概述

在分布式 或 微服务架构中,服务的提供者往往有多个实例 会注册到服务注册中心中,服务消费者需要使用服务时,需要决定使用哪个服务提供者,这正是负载均衡的体现。 负载均衡也可以理解为:将用户的请求平摊分配到每个服务器上,尽可能的压榨每台服务器的带宽、性能。

负载均衡的方式有两种:

服务端负载均衡

像以前的老架构,通过nginx对请求做负载均衡,然后下发到指定的tomcat。

客户端负载均衡

client获取到所有的service实例,然后做负载均衡规则。例如:Ribbon、Feign

本文我们针对SpringCloud如何集成Ribbon实现负载均衡做一个讨论。

注:(版本信息)–

二、Ribbon实现负载均衡

整体项目目录包括三个Module,分别为:eureka-server、ribbon-feign-sample、ribbon-feign-sample-consumer。

其中eureka-server作为服务注册中心、ribbon-feign-sample作为服务提供者、ribbon-feign-sample-consumer作为服务消费者。

Ribbon 与 RestTemplate 配合使用,实现了微服务之间的调用。

0、最上层父项目spring-cloud-center的pom.xml文件

5、启动GREETING-SERVICE服务实例1(8081端口)

服务启动成功后,控制台输出如下:

再看eureka-server dashboard中多了一个 ​​GREETING-SERVICE​​​ 服务,并且其有一个实例 ​​192.168.3.32:greeting-service:8081​​。

6、启动GREETING-SERVICE服务实例2(8082端口)

1> 修改​​RibbonFeignSampleApplication​​的配置:

2> 复制出一个RibbonFeignSampleApplication配置:

3> 修改第二启动类配置名为:​​RibbonFeignSampleApplication-8082​​,启动端口为​​8082​​:

4> 运行​​RibbonFeignSampleApplication-8082​​:

5> 启动之后,看eureka-server dashboard中​​GREETING-SERVICE​​ 服务多了一个实例 ​​192.168.3.32:greeting-service:8082​​:

3、搭建服务消费者ribbon-feign-sample-consumer

ribbon-feign-sample-consumer整体代码结构目录如下:

其包含一个pom.xml文件、一个application配置文件、一个启动类、一个Http负载均衡配置类、一个Controller。

1、pom.xml

ConsumerController中通过RestTemplate调用​​dashboard中多了一个 ​​CONSUMER-SERVICE​​​ 服务,并且其有一个实例 ​​192.168.3.32:consumer-service:9090​​。

4、使用浏览器进行调用服务消费者

上述步骤中,我们已经依次启动了eureka-server、ribbon-feign-sample-8081、ribbon-feign-sample-8082、ribbon-feign-sample-consumer;三个服务、四个实例。

此处我们针对服务消费者​​ribbon-feign-sample-consumer​​做四次接口调用,分别为:

​​ribbon-feign-sample-8081控制台输出:

2> ribbon-feign-sample-8082控制台输出:

3> 结果说明: 我们可以发现,四个请求,ribbon-feign-sample-8081和ribbon-feign-sample-8082各分担了两个请求。其中ribbon-feign-sample-8081服务实例承担了请求:Ribbon是如何实现负载均衡(源码分析)?

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【微服务六】Ribbon负载均衡策略之轮询(RoundRobinRule)、重试(RetryRule)
下一篇:从企业选址的做法,来思考如何做产业地产营销!(如何进行房地产市场产品定位)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~