先回顾一下Sentinel的模块结构以及相互关系:
简单说明上图的几个模块
- sentinel-dashboard:一个通过 spring boot 实现的 web 应用,相当于是 Sentinel 的 OPS 工具,通过 dashboard 我们可以更方便的对规则进行调整、查询实时统计信息等,但是这并不是必须的,没有 dashboard 我们也能使用 Sentinel,甚至我们可以通过 Sentinel 提供的 api 来实现自己的 dashboard。
- sentinel-transport:一个 sentinel-core 和 sentinel-dashboard 通讯的桥梁,如果我们的应用接入了 Sentinel,并且也想通过 dashboard 来管理的话,那就需要引入 sentinel-transport 模块。
- sentinel-extension:一个 Sentinel 的扩展模块,主要是实现了规则的动态更新和持久化。另外热点参数限流也在这里实现的,除此之外注解的相关实现也是在这个模块中。
- sentinel-adapter:一个适配器的扩展,通过适配器可以很方便的为其他框架进行 Sentinel 的集成。
- sentinel-cluster:集群限流的扩展,通过引入这个模块可以在集群环境中使用 Sentinel。
之前已经分析完了Sentinel的指标收集以及后续Slot对于指标统计数据的规则处理。这部分是Sentinel的核心逻辑。
下面我们看几个扩展点: