推荐一款基于阿里巴巴 Sentinel 的改造的高可用、高可扩展限流项目

简介

HASentinel是基于阿里Sentinel做的高可用、高可扩展改造的项目,主要改造点:

  • 将配置改造为存储到Zookeeper中;

  • 将应用上报的Metrics持久化存储到Influxdb集群中;

  • Metrics由Sentinel控制台主动获取,修改为由应用端主动上报;

  • 优化Sentinel控制台的操作,将原来只能够针对应用的各个节点的配置操作,优化为针对应用本身的配置操作,然后应用到应用集群的所有节点;

  • 增加Grafana做为报表展示,支持展示长时间的Metrics报表,并增加支持自动Influxdb集群数据路由的中间层ShardingInfluxdb;

架构图

设计原则

  • 高可用

  • 高可扩展

  • 高性能

  • 支持高并发

重点的改造应用为Sentinel控制台,需要将Metric获取方式由主动拉取修改为被动接收、Metric存储方式由内存修改为Influxdb、配置存储由内存修改为ZK等等;Sentinel客户端包也需要做对应的改造,增加主动推送Metric到控制台、主动接收ZK配置的推送等;为了能够以任意时间纬度查看Metric报表,需要引入Grafana做为报表查看,同时需要解决Influxdb中Metric分库查询及合并查询的问题等等。

源码:https://gitee.com/laofeng/hasentinel

推荐一个超级简单 Java 图形验证码模块

分享一个支付大屏实时监控数据平台

推荐一款清爽的实时监控大屏附安装教程

大屏监控 Metabase 集成到 Java 项目

一个超牛逼的 Java 文件在线预览项目

如何保障消息100%投递成功、消息幂等性

技术人,做的越多你才能走的更远

传统功夫,点到为止,这次不搞偷袭!

小清新前后端分离后台管理系统

一个开源免费的车牌识别训练实战项目

霸气分享 74 款绚丽的监控大屏

一个基于 Vue3.x 的数据可视化大屏项目

推荐一款基于 Vue 的电商级海报生成器

SpringBoot 的接口快速开发框架

基于 SpringBoot + Vue 的智能停车场管理平台

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sentinel一款开源的分布式系统防护组件,主要用于服务的流量控制、熔断降级和系统负载保护等。Sentinel 提供了一种基于注解和 API 的自定义限流方式。 自定义限流的主要步骤如下: 1. 定义资源名:在 Sentinel 中,资源是需要受到限流保护的对象。可以使用 `@SentinelResource` 注解来定义资源名。 ```java @SentinelResource(value = "myResource", blockHandler = "handleBlock") public void myMethod() { // 方法逻辑 } // 定义限流规则 private void handleBlock(BlockException ex) { // 处理限流逻辑 } ``` 2. 配置限流规则:通过 Sentinel Dashboard 或者代码方式配置限流规则,即设置每个资源的 QPS 阈值、流控模式等。 3. 触发限流:当资源的访问量超过限流规则中的阈值时,Sentinel 会触发限流,执行 blockHandler 中定义的逻辑。 以上是基于注解的方式,如果希望基于 API 进行自定义限流,可以使用 Sentinel 提供的 `SphU` 和 `Tracer` 等类进行手动埋点和统计。例如: ```java // 定义资源名 String resourceName = "myResource"; // 手动埋点 Entry entry = null; try { entry = SphU.entry(resourceName); // 执行业务逻辑 } catch (BlockException ex) { // 处理限流逻辑 } finally { if (entry != null) { entry.exit(); } } // 手动统计指标 Tracer.traceCount(resourceName, 1); ``` 通过自定义限流,可以灵活地根据业务需要对不同的资源进行限流保护,提高系统的可靠性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值