首页 > 其他分享 >微服务:保护

微服务:保护

时间:2024-04-29 20:58:28浏览次数:21  
标签:服务 请求 故障 保护 线程 sentinel public

什么是雪崩:

  微服务见相互调用,服务提供者出现故障或阻塞,导致资源耗尽。服务被提供者也会产生相应的故障或阻塞,最终影响绝大部分服务:调用链中所有服务级联调失败,整个集群故障

解决方案:

  1.请求限流:限制访问微服务的请求的并发量,避免因服务激增而导致故障

  2.线程隔离:通过限定每个业务能使用的线程数量而将故障业务隔离,避免故障扩散

  3.服务熔断:断路器统计请求异常的比例或者慢调用比例,超过阈值会熔断该业务,拦截该请求接口。一旦发生熔断,所有请求快速失败,全都走fallback逻辑(返回默认提示)

 

接下来使用阿里的sentinel:sentinel是一款服务流量控制组件

引入过程:https://github.com/alibaba/Sentinel/releases 安装最新版sentinel

引入依赖:

        <!--sentinel-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

yaml:



spring:
cloud:
sentinel:
transport:
dashboard: localhost:8090 # 标记仪表盘的位置信息
http-method-specify: true # 把请求方式+请求路径作为簇点资源名称
 

什么是簇点链路:单机调用的链路。一次请求进入服务后经过的每一个被sentinel监控的资源链。默认sentinel只会监控endpoint

什么是endpoint:是一个restful风格的api,用于提供与应用程序运行时相关的信息和操作:可以通过endpoint查看健康状况、配置信息、日志信息等;也可以通过他来进行重新加载应用程序,关闭应用程序。简单来讲他是controller里的接口

 

如何进行请求限流:选择簇点链路添加流控 阈值类型为QPS

如何进行线程隔离:同上,但是阈值类型为并发线程数

 

如何添加fallback:

1.创建fallbackFactory,对指定client类继承,重写的是查询失败的逻辑

@Slf4j
public class ItemClientFallbackFactory implements FallbackFactory<ItemClient> {
    @Override
    public ItemClient create(Throwable cause) {
        return new ItemClient() {
            @Override
            public List<ItemDTO> queryItemsByIds(Collection<Long> ids) {
                log.info("查询商品服务失败,{}",cause.getMessage());
                return CollUtils.emptyList();
            }

            @Override
            public void deductStock(List<OrderDetailDTO> items) {
                log.info("扣减商品库存失败,{}",cause.getMessage());
                throw new RuntimeException(cause.getMessage());
            }
        };
    }
}

2.在config中进行bean注册

3.在client接口处使用fallbackFactory

4.在消费者模块中添加配置feign-sentinel-enable: true

 

如何进行服务熔断:

 

 

 

标签:服务,请求,故障,保护,线程,sentinel,public
From: https://www.cnblogs.com/kun1790051360/p/18165471

相关文章

  • windows使用samba共享linux文件服务
    一、服务结构服务端:linux服务器192.168.2.251客户端:windows服务器192.168.2.252二、linux部署samba服务端1.安装samba~]#yum-yinstallsamba2.创建共享文件夹~]#mkdir/mnt/svr33.创建samba用户~]#smbpasswdwyg或者~]#pdbedit-a-utest密码:wyg.1234.编......
  • linux网络DNS域名解析服务
    DNS概述1.DNS系统DNS(DomainNameSystem),使用应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。简单来说就是:把域名转换成网络可以识别的IP地址,在通过IP地址访问主机。这种由文字组成的名称,显而易见要更容易记忆。每......
  • 微服务体系-docker容器cpu内存管理
    在微服务体系中,我们使用docker去部署微服务,在服务器资源有限的情况下。由于某个的服务(docker容器)cpu使用过高,或者内存使用过高会导致整个的服务器的崩溃。针对这个问题,我采取了以下措施:在dockerrun命令中添加--cpus=2--memory=4g --cpus=2:设置cpu最多使用2个核心数......
  • 一个服务提供翻译功能,一个服务提供商品名字查询功能,客户端有多语言需求,语言占比不一样
    针对这两个服务的多语言需求和商品信息查询功能,可以设计以下测试用例:基本功能测试:1.1翻译服务:-测试用例1:输入包含英文商品信息的请求,验证翻译服务是否能够正确将英文翻译成其他语言。-测试用例2:输入包含中文商品信息的请求,验证翻译服务是否能够正确将中文翻译成其他语......
  • 服务器部署在国外,测试过程中要注意哪些方面?
    当服务器部署在国外时,在测试过程中需要特别注意以下方面:网络延迟和稳定性:由于服务器在国外,网络延迟可能较高,测试过程中需要考虑网络延迟对测试结果的影响,并确保网络连接稳定。可以使用网络监控工具来实时监测网络延迟和丢包率,以评估网络的稳定性。时区和时间差异:国外服务器......
  • 测试环境服务器比生产环境服务器差怎么等比换算?
    将测试环境服务器的性能转换为相当于生产环境服务器的性能需要一些考虑和估算,因为测试环境和生产环境可能有不同的配置、负载和性能要求。但是,以下是一种常见的方法:确定关键指标:首先,确定用于评估服务器性能的关键指标,例如CPU性能、内存容量、磁盘I/O速度等。性能评估:对测试......
  • 海外服务器真的比国内的香吗?
    很多人会有个疑惑,海外服务器为什么会比国内的贵呢,是海外服务器的性能比国内的好吗?其实海外服务器如美国服务器、日本服务器的性能不一定比国内的服务器要高,两者各有优劣,小编带大家来了解一下,海外服务器与国内服务器的区别。一、服务器的备案备案是工信部对国内网站的要求,只要网......
  • mORMot 1.18 第08章 Delphi中的服务器端JavaScript
    mORMot1.18第8章Delphi中的服务器端JavaScript在mORMot框架中,对JavaScript脚本的支持被称为MonkeyOnRails(版权归PavelMashlyakovsky所有,邮箱:[email protected]),它借助了Mozilla基金会的SpiderMonkey类。mORMot允许程序员编写功能强大的应用程序,但如果客户希望自定义应用......
  • Go-Zero从0到1实现微服务项目开发(二)
    前言书接上回,继续更新GoZero微服务实战系列文章。上一篇被GoZero作者万总点赞了,更文动力倍增,也建议大家先看巧一篇,欢迎粉丝股东们三连支持一波:Go-zero微服务快速入门和最佳实践(一)本文将继续使用Go-zero提供的工具和组件,从零开始逐步构建一个基本的微服务项目。手把手带你完......
  • 高性能摩托车灯降压恒流ic全亮/半亮/循环模式短路保护AP5126
    AP5126是一款PWM工作模式,高效率、外围简单、内置功率管,适用于12-80V输入的高精度降压LED恒流驱动芯片。输出最大功率可达15W,最大电流1.2A。AP5126可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮/循环模式。AP5126工作频率固定在140KHZ,同时内置抖频电路,可以降低对......