Nocas配置注册中心和Sentinel分布式流量防卫兵相关知识总结

一、Nocas配置注册中心

Nacos是阿里巴巴开源的⼀个针对微服务架构中服务发现、配置管理和服务管理平台,Nacos=Eureka+Config+Bus。

Nacos功能特性

1)服务发现与健康检查

2)动态配置管理

3)动态DNS服务

4)服务和元数据管理,动态的服务权重调整、动态服务优雅下线

img

img

保护阈值:可以设置为0-1之间的浮点数,它其实是⼀个⽐例值,防止多数服务都处于不可用,少数可用,在流量洪峰到来的时候,引起少量可用服务承受不住导致雪崩效应。

数据模型

img

Namespace命名空间、Group分组、集群这些都是为了进⾏归类管理,把服务和配置⽂件进行归类,归类之后就可以实现⼀定的效果,⽐如隔离。

Namespace:命名空间,对不同的环境进⾏隔离,⽐如隔离开发环境、测试环境和生成环境

Group:分组,将若干个服务或者若干个配置集归为⼀组,通常习惯⼀个系统归为⼀个组

Service:某⼀个服务,比如简历微服务DataId:配置集或者可以认为是⼀个配置文件

Namespace + Group + Service 如同 Maven 中的GAV坐标,GAV坐标是为了锁定 Jar,二这里是为了锁定服务

配置中心

通过 Namespace + Group + dataId 来锁定配置⽂件,Namespace不指定就默认public,Group不指定就默认 DEFAULT_GROUP,生成dataId:${prefix}-${spring.profile.active}.${file-extension}。

img

通过 Spring Cloud 原⽣注解 @RefreshScope 实现配置⾃动更新,并且可以实现多个配置文件扩展。

img

二、Sentinel分布式流量防卫兵

Sentinel是一个面向云原⽣微服务的流量控制、熔断降级组件。 替代Hystrix,针对问题:服务雪崩、服务降级、服务熔断、服务限流。

Hystrix:

1)自己搭建监控平台dashboard。

2)没有提供UI界⾯进⾏服务熔断、服务降级等配置(而是写代码,入侵了我们源程序环境)。

Sentinel:

1)独立可部署Dashboard/控制台组件。

2)减少代码开发,通过UI界⾯配置即可完成细粒度控制(⾃动投递微服务。

img

Sentinel两部分:

核心库:(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的⽀持。

控制台:(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器。

Sentinel特征:

1)丰富的应用场景:Sentinel 承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可⽤应⽤等。

2)完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到 接入应用的单台机器秒级数据,甚⾄ 500 台以下规模的集群的汇总运行情况。

3)广泛的开源⽣态:Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo的整合。您只需要引入相应的依赖并进⾏简单的配 置即可快速地接入Sentinel。

4)完善的 SPI 扩展点:Sentinel 提供简单易⽤、完善的 SPI 扩展接⼝。您可以通过 实现扩展接⼝来快速地定制逻辑。例如定制规则管理、适配动态数据源等。

img

流量规则模块

资源名:默认请求路径针对来源:Sentinel可以针对调用者进行限流,填写微服务名称,默default(不区分来源)

阈值类型/单机阈值

QPS:(每秒钟请求数量)当调用该资源的QPS达到阈值时进行限流

线程数:当调用该资源的线程数达到阈值的时候进行限流(线程处理请求的时候,如果说业务逻辑执行时间很长,流量洪峰来临时,会耗费很多线程资源,这些线程资源会堆积,最终可能造成服务不可用,进⼀步上游服务不可用,最终可能服务雪崩)

是否集群:是否集群限流

流控模式:

直接:资源调用达到限流条件时,直接限流

关联:关联的资源调用达到阈值时候限流自己

链路:只记录指定链路上的流量

流控效果:

快速失败:直接失败,抛出异常

排队等待:匀速排队,让请求匀速通过,阈值类型必须设置为QPS,否则无效

流控模式之关联限流:

关联的资源调用达到阈值时候限流自己,比如用户注册接口,需要调⽤身份证校验接口(往往身份证校验接口),如果身份证校验接口请求达到阈值,使用关联,可 以对用户注册接口进行限流。

img

Sentinel流量控制:

关联模式、链路模式、预热、排队等待

Sentinel降级规则(等于Hystrix中的熔断):

RT策略

img

异常比例策略

img

异常策略

img

------ 本文结束感谢您的阅读 ------
请我一杯咖啡吧!
itingyu 微信打赏 微信打赏