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 目前支持以下数据源扩展:

控制台

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(开山狗) 标准列表

参考:

introduction | Sentinel

注解支持 · alibaba/Sentinel Wiki · GitHub

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐