您的位置:首页 > 娱乐 > 明星 > 客户端负载均衡Ribbon实例

客户端负载均衡Ribbon实例

2024/12/22 17:07:07 来源:https://blog.csdn.net/qq_16127313/article/details/142065551  浏览:    关键词:客户端负载均衡Ribbon实例

文章目录

  • 一,概述
  • 二,实现过程
  • 三,项目源码
    • 1. 源码放送:
    • 2. 部署方式
  • 四,功能演示
  • 五,其他

一,概述

一般来说,提到负载均衡,大家一般很容易想到浏览器 -> NGINX -> 反向代理多个Tomcat这样的架构图——业界管这种负载均衡模式叫“服务器端负载均衡”,因为此种模式下,负载均衡算法是NGINX提供的,而NGINX部署在服务器端。
本文所讲的Ribbon则是一个客户端侧负载均衡组件——通俗地说,就是集成在客户端(服务消费者一侧),并提供负载均衡算法的一个组件。Ribbon是Netflix发布的负载均衡器,它可以帮我们控制HTTP和TCP客户端的行为。只需为Ribbon配置服务提供者地址列表,Ribbon就可基于负载均衡算法计算出要请求的目标服务地址。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机、响应时间加权等。

二,实现过程

一般情况下,负载均衡组件Ribbon和微服务注册中心Eureka是配合使用的。
为了在非springCloud微服务项目中,使用Ribbon的客户端负载均衡能力,我们可以按如下步骤实现:

  1. 定义服务的被调用方Client,编写webApi接口
  2. 定义服务的调用方Cousumer,调用webApi接口
  3. 定义网关模块Gateway,通过定义路由的方式重新定义webApi接口路径,并引入Ribbon客户端负载均衡
  4. 将步骤2中的WebApi地址切换为网关模块路由接口地址,从而使原来的webApi地址具有了客户端负载均衡功能
  5. 使用docker部署Client(多实例)、Gateway,并在编排文件中使用服务名代替客户端列表地址,解耦Cousumer与Client之间的代码接口。

三,项目源码

在这里插入图片描述

1. 源码放送:

https://gitee.com/00fly/microservice-all-in-one/tree/master/ribbon-demo

2. 部署方式

这边提供了3种docker部署方式

  • 自动ip(推荐)
  • 固定ip
  • docker scale 水平扩展

分别对应上图的docker-auto-ip、docker-fix-ip、docker-scale 目录,有兴趣的同学,可以研究研究!

四,功能演示

http://124.71.129.204:8085/doc.html
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

五,其他

此实例整合了gateway、ribbon、feign、hystrix、swagger,

大家会发现hystrix熔断器起作用时并不从负载均衡中移除故障节点,大家可以思考比较下hystrix和ribbon 异同!


有任何问题和建议,都可以向我提问讨论,大家一起进步,谢谢!

-over-

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com