Nacos(1.6)- nacos 服务消费(服务熔断与降级,以及Hystrix的使用)

Nacos,Sentine限流熔断,Gateway网关 本案例通过前端的一个按钮发送请求,经过网关调用服务的过程。 知识点:前端向网关发送请求需要解决跨域问题 一、网关访问其他服务 建立项目 新建空项目 打开Idea,创建一个空项目(Empty Project),项目名为GitCGB2108IVProjects,例如: 其中,这个空项目就类似磁盘中的一个空的文件夹,可以将此文件夹作为一个代码工作区。 项目初始化配置 第一步:配置maven环境(只要是新的工作区,都要重新配置),注意本地库选择新的位置不要与其它项目共用本地库,因为多个项目所需要依赖的版本不同时 阅读详情

Nacos(1.6)- nacos 服务消费(服务熔断与降级,以及Hystrix的使用)

服务熔断与降级概念

熔断:当下游服务报错不可用时,上游服务为了保证整体服务的可用性,不再继续调用目标服务,直接返回,快速释放资源

降级:当下游服务响应过慢或者不可用时,上游服务调用下游服务的降级逻辑,立即返回结果,熔断可以看成是降级的一种形式

降级有如下几种类型:

  • 超时降级
  • 失败次数降级
  • 故障降级
  • 限流降级

参考:
https://blog.youkuaiyun.com/Milogenius/article/details/104934611
https://blog.youkuaiyun.com/ityouknow/article/details/81230412

为何要使用服务降级

解释了降级的概念,可以先看下如下例子:
在 nacos_demo_provider 服务中,http://127.0.0.1:9092/nacos-provider/hello 接口报错

@RestController
public class NacosProviderController {

    @Value("${server.port}")
    private String port;

    @GetMapping(value = "hello")
    public String hello() {
        int a = 0;
        int b = 1 / a;
        return "hello, i am from " + port;
    }
}

异常为:

java.lang.ArithmeticException: / by zero

nacos_demo_consumer 服务 http://127.0.0.1:9095/nacos-consumer/hello2 接口调用 nacos_demo_provider 服务 http://127.0.0.1:9092/nacos-provider/hello 接口,假设不做降级处理,那么nacos_demo_provider服务异常会直接导致 nacos_demo_consumer 服务对应接口不可用

如何使用Netflix Hystrix使服务降级

Hystrix 是 Netflix 公司提供的服务降级框架,Spring Cloud OpenFeign 默认集成了 hystrix,所以引入了spring-cloud-starter-openfeign 依赖就可以使用 hystrix 了。

① 使用 hystrix 前要将openfeign对hystrix支持的开关打开

feign:
  hystrix:
    enabled: true

② 配置 @FeignClient 中 fallback 或 fallbackFactory 属性,fallbackFactory 功能更强些,以 fallbackFactory 配置为例

/**
 * path 配置对应服务端的上下文路径
 */
@Component
@FeignClient(name = "nacos-provider", path = "nacos-provider", configuration = {FeignClientConfig.class}, fallbackFactory = HystrixClientFallbackFactory.class)
public interface NacosProviderService {

    @RequestMapping(method = RequestMethod.GET, value = "hello")
    String hello();
}

③ 编写降级处理类 HystrixClientFallbackFactory

package com.hs.nacos_demo_consumer;

import com.hs.nacos_demo_consumer.service.NacosProviderService;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;

@Component
public class HystrixClientFallbackFactory implements FallbackFactory<NacosProviderService> {
    @Override
    public NacosProviderService create(Throwable throwable) {
        return new NacosProviderService() {
            @Override
            public String hello() {
                System.out.println(throwable.getMessage());
                return "服务降级";
            }
        };
    }
}

测试:

nacos 配置Sentinel 熔断规则 nacos上网关配置文件 yh-platform-gateway-dev.yml server: port: 18600 spring: cloud: sentinel: app: #标识网关项目 type: 1 # 取消控制台懒加载 eager: true transport: # 控制台地址 dashboard: 192.168.0.188:8088 # .. 阅读详情

相关推荐

SpringCloud Alibaba Sentinel限流熔断降级(五)--------------控制台推送限流规则到Nacos数据源

原始的客户端是将熔断规则保存在内存中,一旦客户端重启,熔断规则将全部丢失。上一篇博客介绍了Sentinel客户端配置Nacos数据源,熔断规则持久化到Nacos中。客户端启动时,从Nacos数据源中加载熔断规则,并且会监听Nacos数据源中规则的变化,一旦Nacos中的规则改变,Sentinel客户端也会随之改变。从而,重启后,客户端之前的熔断规则不会丢失,实现熔断规则持久化。 但是Nacos中...

qq_26932225的博客 2785

JAVA面试题分享一百八十二:Nacos如何实现服务降级和熔断?

总结来说,Nacos通过配置降级规则和集成熔断器组件来实现服务降级和熔断机制。这些机制可以在服务出现故障或性能问题时,自动调整请求路由和中断调用链路,以保证整体系统的可用性和稳定性。在实际应用中,用户应根据具体需求和服务特点来配置和管理降级规则和熔断器参数,以达到最佳的效果。

之乎者也·的博客 1669

(MIUI)小米手机录音文件深度寻踪:从系统缓存到数据目录的实战解析

本文深入解析了MIUI系统中录音文件丢失的常见原因及解决方案,包括系统升级兼容性问题、应用缓存机制异常和存储权限变动。通过实战操作指南,详细介绍了如何从系统目录、数据库层面恢复录音文件,并提供了预防措施和自动化备份方案,帮助小米手机用户有效找回重要录音数据。

weixin_42699679的博客 515

nacos和sentinel限流和熔断的双向规则数据同步,规则数据持久化

我自己的情况会发现新增流控规则没问题,但是更新和删除会失败,修改有问题报404,新增是这个接口/v1/flow/rule ,修改是这个接口/v1/flow/save.json,然后你会发现。1、首先保证你已经安装了nacos,因为我们需要改sentinel代码,所以需要把sentinel源码拉下来,本地运行调试。2、第二修改后端,可以把之前V1的接口和现在V1接口结合,下面我直接贴出代码,复制粘贴就行。接口了并没有/v1/flow/save.json接口。1、第一可以修改前端,改掉接口地址,和请求参数。

qq_45344694的博客 2014

【学习体会】Lighttools8.4.0:矩形阵列光源+条形光源的光学仿真分析

在solidworks中设计了条形光源的基本结构: 由32*6个矩形led组成矩形光源阵列,如下所示 另存为step文件后,导入lighttools中,这里要设置模型的光学属性为:吸收体(机械) 因为我们设计的光源模型是一个整体,我们不能单个面的设置光源,比如说, 这样做的话并不会是这个面设置为光源,而是会把做一个模型都变成一个光源,如下 这显然不是我们想要的 那么,我们就在led位置上放置一个矩形面光源, 这样我们就放置好了一个面光源, 但是问题是,还有191...

LeonJin的博客 1万+

山东大学FPGA课程实验一 加法器设计

电子设计自动化与FPGA设计,实验一 加法器设计

2503_91283667的博客 869

SpringCloud实战:nacos+Hystrix服务熔断与降级详细教程(附git源码)

Springboot-cli 开发脚手架系列 文章目录Springboot-cli 开发脚手架系列简介1. 环境2. 提供者3. 消费者4. 效果测试6. 源码分享 简介 在微服务中断路器在方法执行失败时可以优雅的处理失败,避免跨调用堆栈产生级联失败。 断路器起初会处于关闭状态,允许进行方法的调用。如果因为某种原因,方法调用失败了,断路器就会打开,就不会对失败的方法再执行调用了。此时会调用一个后备方法代替失败的方法返回结果。在调用后备方法的过程中断路器偶尔会进入半开状态,去再次尝试调用发生失败的

dingdingdandan 1791

从CT扫描到3D模型:手把手教你用NII文件在3D Slicer中重建脊柱(附Verse数据集实战)

本文详细介绍了如何利用NII文件在3D Slicer中从CT扫描数据重建脊柱3D模型的全流程,包括环境配置、数据获取、方向校准、结构分割和模型优化等关键步骤。通过Verse数据集实战演示,帮助医学从业者快速掌握医学图像处理技术,提升临床诊疗与教学效率。

weixin_42651281的博客 201

Dubbo--处理降级、服务熔断、整合hystrix

服务降级 当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。 可以通过服务降级功能临时屏蔽某个出错的非关键服务,并定义降级后的返回策略。 向注册中心写入动态配置覆盖规则: RegistryFactory registryFactory = ExtensionLoader.getExtension...

吴声子夜歌的博客 1385

告别Visual Studio!用MSYS2+GCC+CMake在Windows上打造Linux式C++开发环境(保姆级避坑)

本文详细介绍了如何在Windows上使用MSYS2+GCC+CMake搭建Linux式C++开发环境,替代Visual Studio。从MSYS2的安装配置、MinGW-w64 GCC工具链的部署,到CMake项目的创建与构建,提供了保姆级教程和常见问题解决方案,帮助开发者高效过渡到命令行开发模式。

weixin_30298497的博客 323

GEE 案例分析:利用Landsat数据进行FAI、NDVI及CHLA分析并统计平均值(巢湖为例)

浮游藻类指数(FAI)、归一化植被指数(NDVI)及叶绿素a(CHLA)是水体环境监测的重要指标。本文利用Google Earth Engine(GEE)平台,基于Landsat 5和Landsat 8数据,进行水体藻类及植被监测。

此星光明博客 1334

SpringCloud服务降级

SpringCloud服务降级

蓝影铁哥的博客 1512

机器学习初探——用线性回归预测股价趋势

在进入代码之前,先建立一个大框架。类型一句话解释金融中的应用监督学习给机器“标准答案”让它学预测股价(历史数据→未来价格)无监督学习不给答案,让机器自己找规律把相似股票自动归类、发现异常交易强化学习让机器通过“试错”学习最优策略AI自动交易、量化策略优化我们现阶段只学“监督学习”——这是最常用、最容易上手的。准备一堆“特征”和对应的“标签”(比如:历史的第N天 → 那天的价格)喂给机器一个“算法”(比如线性回归)机器“拟合”出一个规律(比如找到一条最合适的直线)

107

springcloud3 hystrix实现服务降级,熔断,限流以及案例配置1

1.服务降级: A方案出现问题,切换到兜底方案B;2.服务熔断:触发规则,出现断电限闸,服务降级3.服务限流:限制请求数量。

健康平安的活着的专栏 801

【网络与爬虫 53】Scrapy-Prometheus实战指南:打造企业级爬虫监控体系的终极解决方案

本文深入探讨Scrapy-Prometheus集成技术,通过费曼学习法从监控痛点出发,详细讲解如何在Scrapy爬虫中集成Prometheus指标收集系统。涵盖从基础配置到企业级监控体系的完整实战指南,帮助开发者构建可观测性强、可维护性高的分布式爬虫监控平台,实现爬虫性能的精准监控和智能告警。

熵数实验室 1584

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

springCloud微服务组件:熔断器(Hystrix)

springCloud微服务组件:熔断器(Hystrix) 降级 消费方调用提供方接口,提供方如果出异常了,需要向消费方返回一个降级方法 1.提供方降级 导入Hystrix对应的坐标,才能向消费方提供降级的方法 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artif

gongwenxi的博客 669

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控

总结(1)你们项目负载均衡如何实现的微服务的负载均衡主要使用了一个组件Ribbon,比如,我们在使用feign远程调用的过程中,底层的负载均衡就是使用了ribbon(2)Ribbon负载均衡策略有哪些?RoundRobinRule:简单轮询服务列表来选择服务器WeightedResponseTimeRule:按照权重来选择服务器,响应时间越长,权重越小RandomRule:随机选择一个可用的服务器ZoneAvoidanceRule:区域敏感策略,以区域可用的服务器为基础进行服务器的选择。

weixin_39180662的博客 797

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

10、服务降级-Hystrix

1、概述 分布式系统面临的问题: 对于复杂的分布式体系,在某些时候不可避免地会失败。 服务雪崩: 假设微服务A调用微服务B,微服务B调用微服务C 微服务A的流量波动很大,流量经常会突然性增加!那么在这种情况下,就算服务A能扛得住请求,服务B和服务C未必能扛得住这突发的请求。 此时,如果服务C因为抗不住请求,变得不可用。那么服务B的请求也会阻塞,慢慢耗尽服务B的线程资源,服务B就会变得不可用。紧接着,服务A也会不可用,如图所示: 所以,通常当你发现一个模块下的某个实例失败后,这时候这个模块依然还会接收流量,

lwd18175239125的博客 361

SpringCloud常见微服务总结-服务治理(Eureka、Consul、Nacos),调用(Ribbon、Feign),降级、熔断(Hystrix),网关(Gateway)

SpringCloud 1 初识Spring Cloud-微服务架构 来源: http://martinfowler.com/articles/microservices.html 国内翻译的不错的帖子 http://blog.didispace.com/microservices-translate/ http://blog.didispace.com/20160917-microservices-note/ : (建议认真读一下这个文章) 微服务特点: 1) 小 2) 相互独立 3)使用

weixin_45195665的博客 1249

Spring Cloud远程服务调用

Spring Cloud远程调用基于Nacos实现服务注册与发现,通过Gateway网关路由请求,Feign结合Ribbon实现负载均衡调用,Hystrix提供熔断降级,底层由Http Client完成HTTP通信。Nacos替代Eureka+Config,支持服务发现、配置管理等功能,具备高可用与动态DNS能力,是微服务架构中关键的中间件。

Hvitur的博客 3436

Springcloud 集成 Hystrix

熔断、降级 相同的目的:从可用性和可导性出发,防止系统运行缓慢或者崩溃 相同的结果:用户发现某些功能暂时不可用 不同的触发点:熔断一般都是由于下游服务异常,系统自动监测触发;降级多是出于对系统整体负荷考虑的,可人工干预触发的(抢购活动时,部分非热点服务下线,【配置中心,服务开关】) 不同的实现的方式:熔断一般都是框架级别的,每个服务都需要的;降级需要考虑业务层次(降级都由最外层服务开始) 重试、阻塞、超时、幂等 由于服务调用失败(超时,异常),可以配置失败重试策略,但同时需要考虑重试接口..

qq_34253002的博客 1180

服务限流、降级、熔断-SpringCloud

SpringCloud框架整合Nacos,Sentinel,Hystrix,OpenFeign组件完成一个服务治理案例,旨在为实际项目有类似需求提供解决思路。

weixin_44929475的博客 521

大数据之微服务注册、发现与熔断方案

综上所述,微服务注册、发现与熔断是微服务架构中的关键概念,它们在大数据微服务架构中同样发挥着重要的作用。微服务熔断是指在微服务架构中,当某个微服务出现故障或响应时间过长时,为了防止故障扩散和保证系统的整体稳定性,主动中断对该微服务的调用,并返回一个预设的错误响应给服务消费者。微服务注册是微服务架构中的一个核心环节,它涉及到服务提供者将自己的元数据信息(如主机名、端口号、身份验证信息、协议、版本号以及运行环境信息等)注册到服务注册中心的过程。在大数据微服务架构中,服务发现同样具有重要的作用。

赵玉的专栏 1461

SpringCloud之基本使用与nacos

一、概念 二、nacos搭建 1、新建项目,将此项目作为父项目,给子类提供依赖 不需勾选: 2、cloud01项目导入依赖 packing(打包类型,默认为jar)pom : 父级项目(pom项目里没有java代码,也不执行任何代码,只是为了聚合工程或传递依赖用的)jar : 内部调用或者是作服务使用war : 需要部署的项目dependencyManagement(管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号)dependencyManagement与depen

weixin_60389087的博客 4556

dubbo2.6.0服务注册与发现,降级,容错

目录 安装注册中心 安装监控中心dubbo-admin,此为管理控制台 关闭dubbo服务 总结springboot+dubbo配置 Dubbo.properties覆盖策略 启动时检查 超时时间与重试次数 多版本,也称之为灰度发布 本地存根,应该放在公共接口包里 Zookeeper宕机与dubbo直连 服务降级 服务容错 提供者 消费者 服务注册与发现 安装注册中心 到zookeeper下载zookeeper-3.4.14.tar.gz包,解压 到bin文件夹里找到zk

幻化成风 630

多语言微服务架构下限流降级熔断策略实战与参数调优

在微服务架构中,流量高峰下的系统稳定性是核心挑战。限流、降级与熔断构成了服务保护的三道防线:限流在入口拦截突发流量,降级在功能异常时提供兜底方案,熔断则在下游故障时快速隔离依赖。理解三者的触发原理与配合关系,能够有效避免雪崩效应。基于令牌桶与并发线程数限流的组合策略,结合热点参数限流和动态规则推送,可在多语言混合架构下实现精细化流量管控。合理的熔断阈值与降级兜底设计直接影响故障恢复的平滑度,而通过Nacos动态调整规则则大幅提升运维效率。围绕Sentinel组件的落地实践,探讨多语言微服务环境中限流降级熔断

weixin_29235923的博客 204
上一篇: Nacos(1.5)- nacos 服务消费(Spring Cloud OpenFeign 配置)
下一篇: SpringBoot源码解析(1.1)-自动装配概念
sql2008help
博客等级 码龄11年 80粉丝 145原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值