Ribbon负载均衡器(Ribbon简介、Ribbon应用、Ribbon是如何做到的、Hystrix熔断器、线程隔离服务降级、总结)

本文主要是介绍Ribbon负载均衡器(Ribbon简介、Ribbon应用、Ribbon是如何做到的、Hystrix熔断器、线程隔离服务降级、总结),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Ribbon简介

            负载均衡:是一个算法,可以通过该算法实现从地址列表中获取一个地址,进行服务调用。
            Ribbon(瑞本):是Netflix(来福利)公司发布的负载均衡器,为Ribbon配置服务提供者地址列表后,Ribbon就可以基于某种负载均衡算法,自动帮助消费端去请求。
            Ribbon提供的负载均衡算法:轮询(默认) 和 随机

二、Ribbon应用

1、创建服务集群

        启动多个userservice实例(9090,9091)

(1)userservice 中修改 application.yml

           

           

 (2)启动2个服务

2、修改客户端

         RestTemplate实例化方法,添加负载均衡注解

         

3、Controller 修改

         

三、Ribbon是如何做到的?

        

四、Hystrix熔断器

        Hystrix(海思缀科斯)熔断器:是一个延迟和容错库,用于隔离访问远程服务,防止出现级联失败

       主要作用:解决雪崩效应(用户的请求一直等待一个出现异常的服务,致使请求的线程阻塞,引起雪崩效应)

五、线程隔离&服务降级

Hystrix解决雪崩效应方式
* 线程隔离:用户请求不直接访问服务,而是使用线程池中空闲的线程访问服务,加速失败判断时间
* 服务降级及时返回服务调用失败的结果,让线程不因为等待服务而阻塞

实例:

1、consumer_demo消费工程中添加依赖

        <!--hystrix熔断器--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency>

2、消费工程启动类中 开启熔断

       

3、消费工程 Controller编辑降级逻辑

       

       

4、application.yml配置超时时间

hystrix:command:default:execution:isolation:thread:timeoutInMilliseconds: 2000  #配置默认的超时时间

六、总结

      

        

这篇关于Ribbon负载均衡器(Ribbon简介、Ribbon应用、Ribbon是如何做到的、Hystrix熔断器、线程隔离服务降级、总结)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/895004

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字