Spring Cloud Ribbon 快速入门

文章介绍了SpringcloudRibbon作为HTTP和TCP客户端的负载均衡工具,通过Eureka服务注册中心实现服务发现。负载均衡有多种策略,包括轮询、响应时间权重等。文章详细阐述了创建负载均衡服务的步骤,如添加Ribbon依赖、配置RestTemplate,并讨论了不同负载均衡算法的适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、概述

2、负载均衡

3、示意图

4、创建步骤

        4.1 服务注册中心

        4.2 提供者(provider)

        4.3 消费者(consumer)

                4.3.1 添加Ribbon依赖

                4.3.2  负载均衡,自动注册RestTemplate

                4.3.3 接口调用

5、效果

6、负载均衡算法 

        5.1 算法选择

                5.1.1 配置文件

                5.1.2 全局修改


1、概述

        Spring cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。主要功能是提供客户端均衡算法和服务调用。Ribbon作为服务消费的负载均衡器,有两种使用方式,一种和RestTemplate相结合,另一种是和OpenFeign相结合。OpenFeign默认集成了Ribbon。

2、负载均衡

        负载均衡,英文名称为Load Balance (LB) http:// 1b:// (负载均衡协议),其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
        负载均衡构建在原有网络结构之.上,它提供了一-种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。

3、示意图

        

4、创建步骤

        创建一个注册中心(eureka-server)、两个provider(eureka-client、web)以及一个consumer(eureka-client、web)。

        4.1 服务注册中心

                参考:Eureka快速入门_月融花下的博客-优快云博客 

        4.2 提供者(provider)

                provider-a和provider-b应用名称一样。

                provider-a:

                provider-b:

                controller也一样:

                provider-a:

                 provider-b:

        4.3 消费者(consumer)

                通过consumer去访问provider,完整的接口调用是拿到ip和端口以及路径。

                http://provider/testRibbon 通过Ribbon实现复制均衡,provider是访问的应用名称。

                4.3.1 添加Ribbon依赖

                4.3.2  负载均衡,自动注册RestTemplate

                4.3.3 接口调用

5、效果

        采用轮询的方式。

6、负载均衡算法 

         1、AvailabilityFilteringRule -- 会先过滤掉由于多次访问故障处于断路器跳闸状态的服务,还有并发的连接数量超过阈值的服务,然后对于剩余的服务列表按照轮询的策略进行访问        

        2、 WeightedResponseTimeRule--根据平均响应时间计算所有服务的权重,响应时间越快服务权重越大被选中的概率越大。刚启动时如果同统计信息不足,则使用轮询的策略,等统计信息足够会切换到自身规则。

        3、RetryRu1e--先按照轮询的策略获取服务,如果获取服务失败则在指定的时间内会进行重试,获取可用的服务。

        4、BestAvailableRule -会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择-个并发量小的服务。

        5、ZoneAvoidanceRule --默认规则,复合判断Server所在区域的性能和Server的可用行选择服务器。

        5.1 算法选择

                5.1.1 配置文件

#访问不同的服务使用不同的算法规则
provider: #服务提供者的应用名称
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #几种算法的全限定类名

                5.1.2 全局修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值