美文网首页
Ribbon实现负载均衡

Ribbon实现负载均衡

作者: 放开那个BUG | 来源:发表于2019-01-24 12:48 被阅读74次

    首先,我们需要思考一个问题,如果同一个服务提供者在注册中心注册多个服务,那么用户怎么选择服务呢?所以,需要客户端来实现服务的负载均衡,而在SpringCloud中,推荐使用Ribbon来实现负载均衡。

    Ribbon简介

    Ribbon时Netflix发布的负载均衡器,它有助于控制HTTP和TCP客户端的行为。为Ribbon配置服务提供者地址列表后,Ribbon就可基于某种负载均衡算法,自动地帮助服务消费者去请求。Ribbon默认为我们提供了很多的负载均衡算法,例如轮询、随机等。我们也可以自定负载均衡算法。

    有了Ribbon之后,我们的工程架构:


    使用Ribbon

    首先为order模块(Ribbon主要是帮助服务消费者)增加Ribbon依赖

    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-ribbon</artifactId>
    </dependency>
    

    但是eureka依赖中已经包含了,所以可省略。

    然后为RestTemplate设置@LoadBalanced注解。之后,改造Item Service的实现:
    之前的实现:


    现在的实现:


    到此,已经全部完成了负载均衡。当然,Ribbon还有很多其他的策略,如图所示,可以根据这些类深入类的内部进行探究。


    一般的策略是默认策略,当然也有其他策略:


    相关文章

      网友评论

          本文标题:Ribbon实现负载均衡

          本文链接:https://www.haomeiwen.com/subject/nhutrqtx.html