Springboot 实践(20)负载均衡器Ribbon

        Ribbon是Netflix发布的负载均衡器,协助控制HTTP和TCP客户端的行为;为Ribbon配置服务提供者地址后,Ribbon就可基于负载均衡算法自动地帮助服务消费者去请求。Ribbon默认提供了很多负载均衡算法,例如:轮询、随机等;也可以为Ribbon实现自定义负载均衡算法。

        创建消费者工程,命名为Springboot-LoadBalance-consumer2项目,拷贝Springboot-LoadBalance-consumer工程,修改如下内容:

1、启动函数

@EnableDiscoveryClient

@SpringBootApplication

public class MangoConsumerApplication {

    public static void main(String[] args) {

        SpringApplication.run(MangoConsumerApplication.class, args);

    }

  

    @Bean

    @LoadBalanced

    public RestTemplate restTemplate() {

        return new RestTemplate();

    }

}

备注:@LoadBalanced注解的作用是对服务开启负载均衡,默认的负载均衡方式是轮询。

2、添加服务

        新建一个控制类,注入RestTemplate,并调用服务提供者hello服务。

@RestController

public class RibbonHelloController {

    @Autowired

    private RestTemplate restTemplate;   

    @RequestMapping("/ribbon/call")

    public String call() {

        String callServiceResult = restTemplate.getForObject("http://mango-producer/hello", String.class);

        return callServiceResult;

    }

}

备注:使用http:// service-producer/hello调用服务, service-producer为注册的服务名称,LoadBalancerInterceptor会拦截调用并根据服务名找到对应的服务。

3、测试

在浏览器中连续两次使用http://localhost:8006/ribbon/call调用服务,得到结果如下:

说明ribbon负载均衡已经成功启动了。

4、ribbon负载均衡策略配置方式

(1)在配置类中注入一个新的IRule(举例为随机均衡策略,当然这种为全局进行配置,也就是该服务中得分所有规则都将采用配置得负载均衡规则。)

@Bean

public IRule randomRule(){

return new RandomRule();

}

(2)在yml文件中进行配置(这样得配置可以针对某一个服务改变他得负载均衡策略,以下图中就只针对了service-producer服务及逆行配置,也就是说在本服务下,只有service-producer采取随机负载均衡策略,其他得服务还是轮询负载均衡策略。)

service-producer:

          ribbon:   

              NFLoadBalancerRuleClassName:

                   com.netflix.loadbalancer.RandomRule #负载均衡规则

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/116410.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】二叉搜索树与Map和Set

目录 ♫二叉搜索树 ♪什么是二叉搜索树 ♪二叉搜索树的特性 ♪模拟实现二叉搜索树 ♫Map ♪什么是Map ♪Map的内部类 ♪Map的常用方法 ♪Map的遍历 ♫Set ♪什么是Set ♪Set的常用方法 ♪Set的遍历 ♫二叉搜索树 ♪什么是二叉搜索树 二叉搜索树又称二叉排序树&#…

罗德里格斯公式

1.点乘 A ⃗ ⋅ B ⃗ ∣ A ⃗ ∣ ∣ B ⃗ ∣ c o s ⟨ A ⃗ , B ⃗ ⟩ \vec{A} \cdot \vec{B} \left | \vec{A} \right | \left | \vec{B} \right | cos\left \langle \vec{A}, \vec{B} \right \rangle A ⋅B ​A ​ ​B ​cos⟨A ,B ⟩ 对应几何意义:向量 A ⃗…

经典题记录 字符串相加/相乘

1. LeetCode 415 字符串相加 代码一:代码简短,但需要借助额外的一个string来保存结果,更占用内存。 class Solution { public:string addStrings(string num1, string num2) {string ans"";int size1num1.size();int size2num2.si…

[wsl2] wsl2上安装使用cmake+OpenGL教程

一、前提 系统为windows11,并且使用wsl2(ubuntu);ubuntu中安装了基本的g, cmake编译工具;在windows中使用X-Server作为wsl2的显示GUI; 二、安装OpenGL 安装opengl的基本步骤为:安装glfw->安装glad->修改OpenG…

如何看待Unity新的收费模式?

文章目录 背景Unity的论点开发者的担忧如何看待Unity新的收费模式?1. 理解Unity的立场2. 考虑小型开发者3. 探索替代方案4. 对市场变化保持敏感5. 提高游戏质量 结论 🎉 如何看待Unity新的收费模式? ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1…

194、SpringBoot -- 下载和安装 Erlang 、 RabbitMQ

本节要点: 一些命令: 小黑窗输入: rabbitmq-plugins enable rabbitmq_management 启动控制台插件 rabbitmq-server 启动rabbitMQ服务器 管理员启动小黑窗: rabbitmq-service install 添加rabbitMQ为本地服务 启动浏览器访问 ht…

Android 10.0 系统开启和关闭黑白模式主题功能实现

1. 概述 在10.0的rom系统开发定制化中,在系统SystemUI的下拉状态栏中,产品开发功能需求要求添加黑白模式功能开关的功能,就是打开黑白模式,系统颜色就会变成黑白颜色, 关闭黑白模式开关系统就会变成彩色模式,所以就需要了解下系统是怎么设置黑白模式和彩色模式的,然后添…

【【萌新的FPGA学习之初识ZYNQ】】

萌新的FPGA学习之初识ZYNQ 进入 21 世纪,FPGA 的发展进入了累积阶段。人们发现,FPGA 的发展此时遭遇了瓶颈,因此单纯的 提升 FPGA 的容量已经不能满足各类应用的需求。由于更多客户开始追求更高的性价比,FPGA 不得不从 单纯的可编…

【06】FISCOBCOS中的节点前置服务

WeBASE管理平台 微众银行开源的自研区块链中间件平台——WeBASE(WeBank Blockchain Application Software Extension) 是区块链应用和FISCO BCOS节点之间搭建的中间件平台。WeBASE屏蔽了区块链底层的复杂度,降低区块链使用的门槛,大幅提高区块链应用的开发效率,包含节点前置…

10.5 串联型稳压电路(1)

稳压管稳压电路输出电流较小,输出电压不可调,不能满足很多场合下的应用。串联型稳压电路以稳压管稳压电路为基础,利用晶体管的电流放大作用,增大负载电流;在电路中引入深度电压负反馈使输出电压稳定;并且&a…

【华为云云耀云服务器L实例评测|云原生】自定制轻量化表单Docker快速部署云耀云服务器

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

力扣刷题-链表-设计链表

题意: 在链表类中实现这些功能: get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。 addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节…