阿里巴巴微服务流控组件Sentinel学习总结笔记

Sentinel学习笔记

官方文档 :

introduction | Sentinel

资源:

资源定义:

1、注解支持,使用注解@SentinelResource,需要开启spring aspectJ,且引入sentinel的aspectJ依赖包

注解支持 · alibaba/Sentinel Wiki · GitHub

2、try SphU(傻破孩哟) if SphO (傻破孩哦).entry(resourceName)手动代码埋点。可以帮助rocketMq削峰填谷,需要手动埋点。

3、开源框架适配 ,包括spring cloud,dubbo,httpClient,spring cloud gateway等,客户端项目引入sentinel提供的各对应框架的适配依赖包,则会自动为服务和接口或方法加入保护资源列表。

规则:

规则包括 流控规则、熔断规则、热点规则、系统规则、授权规则(调用方来源黑白名单控制)

  • 流控规则类型分为按QPS控制、按并发线程数控制
  • 熔断规则类型分为按慢调用统计、异常数统计、异常率统计
  • 授权规则(调用方来源黑白名单控制) 类型分为 黑名单 、白名单;调用方信息通过 ContextUtil.enter(resourceName, origin) 方法中的 origin 参数传入。
AuthorityRule rule = new AuthorityRule();
rule.setResource("test");
rule.setStrategy(RuleConstant.AUTHORITY_WHITE);
rule.setLimitApp("appA,appB");
AuthorityRuleManager.loadRules(Collections.singletonList(rule));

数据源扩展DataSource

重启客户端后,控制台录入推送的规则也不见了,持久的话,可以配置数据源扩展DataSource:

Sentinel 目前支持以下数据源扩展:

  • Pull-based: 动态文件数据源、Consul, Eureka

  • Push-based: ZooKeeper, Redis, Nacos, Apollo, etcd

控制台

dashboard

监控、簇点链路

规则配置

集群流控

机器列表

多语言版本支持

java go rust c++

官方现在有go语言的版本文档:quick-start | Sentinel

OpenSergo 动态规则源

Sentinel 2.0 将作为 OpenSergo 流量治理的标准实现,Sentinel 社区提供对接 OpenSergo spec 的动态数据源模块 sentinel-datasource-opensergo,只需要按照 Sentinel 数据源的方式接入即可。

OpenSergo 是一套开放通用的、面向云原生服务、覆盖微服务及上下游关联组件的微服务治理标准,并根据标准提供一系列的 API 与 SDK 实现。OpenSergo 项目由阿里巴巴、bilibili、CloudWeGo 等企业与社区联合发起,社区主导共建。OpenSergo 以统一的一套配置/DSL 定义服务治理规则,面向多语言异构化架构,覆盖微服务框架及上下游关联组件。

注:OpenSergo这个单词搜索了下,Sergo应该读作塞尔戈,为了便于记忆,可以译作山狗,那连起来就译作:"开山狗"吧,反正中间件什么的,各种动物名称都挺多的。

OpenSergo(开山狗) 标准列表

  • 服务元数据

  • 服务发现

  • 流量治理与服务容错

    • 流量路由标准 (Traffic Routing)

    • 流量防护与容错标准 (Fault-Tolerance)

    • 流量染色

  • 数据库治理:从微服务访问数据库的视角进行治理,包括数据库流量路由、读写流量治理、数据分片、数据加解密等。

  • 缓存治理:从微服务访问缓存的视角进行治理,如热点 key 防击穿等。

  • 日志治理

参考:

introduction | Sentinel

注解支持 · alibaba/Sentinel Wiki · GitHub

你可能感兴趣的:(微服务,微服务,sentinel,学习)