一.Sentinel是什么
按照官方文档所说,Sentinel是分布式流量防卫兵。随着微服务的流行,大型互联网系统一般会按功能划分成很多比较小,自治的微
服务,服务之间通过相互调用协同让整个系统运转起来,所以就要保证每个微服务的稳定性。Sentinel以流量为切入点,从流量控
制,熔断降级,系统负载保护等多维度保护服务的稳定性。
简而言之,Sentinel是一个从流量切入来保护分布式系统稳定的开源中间件。详细介绍
Sentinel主要特性:
Sentinel生态系统:
Sentinel的源代码是完全开源的,下方截图是Sentinel源码的模块结构,简单说下主要模块的功能
1.adapter模块主要是对一些主流的框架(dubbo,grpc,zuul等)做的适配封装,方便轻松接入使用
2.cluster模块是处理集群流控相关功能
3.core模块是Sentinel的核心模块,基本所有功能都在这里实现
4.dashboard是管理台模块,是个springboot项目,主要就是负责规则的配置以及监控指标的可视化查看等
5.extension是扩展模块,sentinel是一个提供很多扩展点的系统,我们可以按所需扩展自己的功能,如已提
供持久化规则的DataSource和ParameterFlow(热点参数流控)扩展
6.transport主要是用于dashboard和client通信的一个模块,有netty和http两种实现方式
以下是Sentinel生态系统建设以及多语言版本支持
二.开源Dashboard存在的问题
开源的dashboard功能是很弱的,因为所有数据都是存在内存中的,客户端重启规则就丢失了,监控数据也是存近5分钟数据在
dashboard内存中,自己搭建玩玩是可以的,但是不能用于生产环境的,想要在生产环境大规模使用,需要对dashboard做定制化
改造,就我的改造过程来说,需要完成以下几点:
1.鉴权,可以接入公司内部sso系统
2.规则持久化 —> apollo,nacos,consul,zk,redis等
3.监控数据持久化 —-> influxdb
4.监控大屏 —-> 开发监控页面嵌入内部系统 or Grafana
5.报警 —-> 收集sentinel-block.log日志实现报警
当然了,如果你公司比较有钱,也可以直接用阿里云上Sentinel控制台,功能也是比较完备的,基本上能满足日常需求
这篇文章主要介绍了Sentinel的主要功能以及Dashboard需改进的地方,下篇文章主要介绍如何实现规则持久化到Apollo。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/10250.html