zoukankan      html  css  js  c++  java
  • 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默认的负载均衡访问算法,也可以自定义访问规则

    总结

  • 相关阅读:
    【小程序】订阅消息
    【小程序】轮播图
    【小程序】全局变量的设置、使用、修改、全局方法执行
    【RN】标题栏右边添加自定义按钮或加事件
    【RN】阴影react-native-shadow
    【vue】点击复制到剪贴板的方法( clipboard )
    Q-learning和Sarsa的区别
    Q-learning之一维世界的简单寻宝
    使用tensorflow时,关于GPU的设置
    安装Matlab出现弹出DVD1插入DVD2的提示怎么办?
  • 原文地址:https://www.cnblogs.com/FondWang/p/12251227.html
Copyright © 2011-2022 走看看