• SpringCloud之Ribbon负载均衡(四)


    简介

      分布式系统中,各个微服务会部署多个实例,如何将服务消费者均匀分摊到多个服务提供者实例上,就要使用到负载均衡器。

      Ribbon 是负载均衡器 ,它提供了很多负载均衡算法,例如轮询、随即等,在配置服务提供者地址后,可以将服务消费者请求均匀的分发。

    Ribbon常用负载均衡策略

      Ribbon就属于进程内负载均衡,它只是一个类库,集成于Eureka Client进程,Eureka Client进程通过访问注册中心Eureka Server发现服务列表,发现的服务列表信息是由ribbon来管理的。

      当访问Application Service的时候,Application Client会通过ribbon来找到合适的Application Service地址信息,并发起远程调用请求。

      Ribbon的负载均衡策略是通过不同的类型来实现的,下表详细介绍一些常用负载均衡策略及对应的Ribbon策略类。

    Ribbon服务搭建

    修改springcloud-consumer-dept-80消费者服务。

    ① 修改pomapplication.yml文件

    pom中添加如下依赖

    修改application.yml文件

    ② 在相关类添加注解

     因为消费者通过RestTemplate接口进行远程调用服务的,所以在这个方法添加Ribbon注解,通过@LoadBalanced注解进行负载均衡,选择调用服务提供者

    controller类通过服务名称调用。

    启动类添加@EnableEurekaClient 注解,因为它是通过服务名称调用的,而服务名称在注册中心中注册着,所以需要添加注解,连接注册中心

    Ribbon负载均衡的基本配置算是OK了,因为测试负载均衡,需要多个服务提供者。所以新建服务提供者


    多服务提供环境搭建

    创建springcloud-provider-dept-8002springcloud-provider-dept-8003子项目,和8001相同只是对应的端口号和一些配置修改即可。

     

    几乎和8001完全一样,只是对应的8002 8003的application.yml服务器端口改为80028003

    测试

    • 启动三个Eureka注册中心
    • 启动springcloud-consumer-dept-80
    • 启动springcloud-provider-dept-8001/8002/8003三个服务提供者

    访问 http://localhost/consumer/dept/get/1

    多次访问,查看三个服务提供者的控制台

     

     

    发现平均访问,这是Ribbon默认的负载均衡访问算法,也可以自定义访问规则

    总结

  • 相关阅读:
    Objective-C马路成魔【14-关键C语言功能】
    js正则表达式语法
    Python 得到Twitter所有用户friends和followers
    error:stray'243'in program
    VC各种方法获得的窗口句柄
    新东方雅思词汇---5.2
    php中this,self,parent三个关键字的区别辨析
    英语影视台词---一、少年派的奇幻漂流
    英语常用单词分类---1
    amazeui的表单开关插件的自定义事件必须添加.bootstrapSwitch 命名空间,给了我们什么启示
  • 原文地址:https://www.cnblogs.com/FondWang/p/12251227.html
Copyright © 2020-2023  润新知