dubbo 支持服务降级吗_Dubbo使用Sentinel来对服务进行降级与限流

一、Sentinel 是什么

Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。 点此地址了解更多Sentinel。

Sentinel 分为两个部分:

核心库(Java 客户端)不依赖任何框架/库,能够运行于所有 Java 运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持。

控制台(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需要额外的 Tomcat 等应用容器,Sentinel 控制台提供一个轻量级的控制台,它提供机器发现、单机资源实时监控、集群资源汇总,以及规则管理的功能。

二、下载Sentinel控制台

三、运行Sentinel控制台

注意:启动 Sentinel 控制台需要 JDK 版本为 1.8 及以上版本。

使用如下命令启动控制台:

java -Dserver.port=8080 \

-Dcsp.sentinel.dashboard.server=localhost:8080 \

-Dproject.name=sentinel-dashboard \

-jar sentinel-dashboard.jar

其中 -Dserver.port=8080 用于指定 Sentinel 控制台端口为 8080。

四、客户端Dubbo集成

使用时需引入以下模块(以 Maven 为例):

com.alibaba.csp

sentinel-dubbo-adapter

1.4.0

com.alibaba.csp

sentinel-transport-simple-http

1.4.0

启动时加入 JVM 参数

-Djava.net.preferIPv4Stack=true \

-Dcsp.sentinel.api.port=8720 \

-Dcsp.sentinel.dashboard.server=localhost:8787 \

-Dproject.name=example-customer

启动项参数说明:

-Dcsp.sentinel.api.port 接受数据推荐的http端口

-Dcsp.sentinel.dashboard.server 指定控制台地址

-Dproject.name 指定控制台显示的项目名称

更详细的信息可以参考启动配置项。

五、Dashboard/客户端改造

改造前:客户端利用sentinel-transport-simple-http模块暴露一个特定的端口,Sentinel Dashboard通过http的形式进行数据推送,客户端接收后将规则保存在本地内存中。

改造后:客户端注册到相关的注册中心中,Sentinel Dashboard控制台将配置信息推送到配置中心,如nacos,zookeeper中,由配置中心去进行配置推送。

六、改造过程

1. Dashboard改造

Dashboard加入datasource支持,以zookeeper为例,先加入支持包。

com.alibaba.csp

sentinel-datasource-zookeeper

然后进行DynamicRuleProvider,DynamicRulePublisher适配,并约定一系列协议路径,如下:

流量控制规则:/sentinel/rules/{appName}/flow

黑白名单规则:/sentinel/rules/{appName}/authority

熔断降级规则:/sentinel/rules/{appName}/degrade

热点参数规则:/sentinel/rules/{appName}/param

负载保护规则:/sentinel/rules/{appName}/system

2. 客户端改造

加入支持包,以zookeeper为例:

com.alibaba.csp

sentinel-datasource-zookeeper

并进行注册,下面以限流规则为例:

ReadableDataSource> flowRuleDataSource = new ZookeeperDataSource<>(zkAdress, appPath), source -> JSON.parseObject(source, new TypeReference>() {}));

FlowRuleManager.register2Property(flowRuleDataSource.getProperty());

具体代码可以参考我的项目实现,欢迎start:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值