Sentinel 基于Nacos规则持久化-推模式

文章目录

          • 一、推模式架构图
          • 二、原理简述
            • 2.1. 组件版本关系
            • 2.2. 控制台推送规则
          • 三、Sentinel控制台改造
            • 3.1. 下载源码
            • 3.2. 修改pom
            • 3.3. 重要文件复制
            • 3.4. 注册地址修改
            • 3.5. 请求实例需改
            • 3.6. 菜单新增
          • 四、编译 & 启动
            • 4.1. 先启动nacos
            • 4.2. 编译打包
            • 4.3. 创建微服务 && 启动
            • 4.4. 刷新sentinel
            • 4.5. 登录nacos
            • 4.6. sentinel 规则删除
            • 4.7. nacos规则查看
            • 4.8. (企业案例)规则扩展

一、推模式架构图

在这里插入图片描述

图片引用自 https://github.com/alibaba/Sentinel/wiki/在生产环境中使用-Sentinel

二、原理简述
2.1. 组件版本关系
Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ VersionDubbo VersionSeata Version
2.2.6.RELEASE1.8.11.4.24.4.02.7.81.3.0
2021.1 or 2.2.5.RELEASE or 2.1.4.RELEASE or 2.0.4.RELEASE1.8.01.4.14.4.02.7.81.3.0
Spring Cloud VersionSpring Cloud Alibaba VersionSpring Boot VersionNacos Versionjdk
Spring Cloud Hoxton.SR92.2.6.RELEASE2.3.2.RELEASE1.4.21.8.202
2.2. 控制台推送规则

将规则推送到Nacos或其他远程配置中心
Sentinel客户端链接Nacos,获取规则配置;并监听Nacos配置变化,如发生变化,就更新本地缓存(从而让本地缓存总是和Nacos一致)
控制台监听Nacos配置变化,如发生变化就更新本地缓存(从而让控制台本地缓存总是和Nacos一致)

三、Sentinel控制台改造

控制台改造主要是为规则实现
DynamicRuleProvider:从Nacos上读取配置
DynamicRulePublisher:将规则推送到Nacos上

3.1. 下载源码

这里使用1.8版本演示
https://github.com/alibaba/Sentinel/tags
在这里插入图片描述

3.2. 修改pom

在这里插入图片描述

   <!-- for Nacos rule publisher sample --><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId><scope>test</scope></dependency>

改为

   <!-- for Nacos rule publisher sample --><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId></dependency>
3.3. 重要文件复制

由于sentinel持久化默认不支持持久化,但是官方关于sentinel提供了nacos、zookeeper、apollo这3种方式,但是需要自己集成。

找到 sentinel-dashboard/src/test/java/com/alibaba/csp/sentinel/dashboard/rule/nacos目录,将整个目录拷贝到 sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/nacos,如图:

在这里插入图片描述

3.4. 注册地址修改

在这里插入图片描述

3.5. 请求实例需改

修改sentinel页面端保存规则请求的url控制层
在这里插入图片描述
修改后的配置
在这里插入图片描述

    @Autowired@Qualifier("flowRuleNacosProvider")private DynamicRuleProvider<List<FlowRuleEntity>> ruleProvider;@Autowired@Qualifier("flowRuleNacosPublisher")private DynamicRulePublisher<List<FlowRuleEntity>> rulePublisher;
3.6. 菜单新增

修改 sentinel-dashboard/src/main/webapp/resources/app/scripts/directives/sidebar/sidebar.html,找到:
在这里插入图片描述
修改后
在这里插入图片描述
齐活儿啦!终于把流控规则改造成推模式持久化啦!

四、编译 & 启动
4.1. 先启动nacos

https://nacos.io/zh-cn/docs/quick-start.html
这里一windows环境演示

startup.cmd -m standalone

在这里插入图片描述
在这里插入图片描述
里面的配置先忽略

4.2. 编译打包

执行 mvn clean package -DskipTests
在项目的 target 目录找到sentinel-dashboard.jar ,执行 java -jar sentinel-dashboard.jar 启动控制台。
在这里插入图片描述

登录
在这里插入图片描述

在这里插入图片描述

4.3. 创建微服务 && 启动

创建微服务模块
添加依赖

 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependencyManagement><dependencies><!--spring-cloud-alibaba 版本控制--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.2.6.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

配置文件

server:port: 9000
spring:cloud:nacos:discovery:service: product-servserver-addr: localhost:8848sentinel:transport:dashboard: localhost:8080filter:enabled: false
management:endpoints:web:exposure:include: '*'

创建测试方法

package com.gblfy.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ProductController {//http://localhost:9000/product/" + productId@GetMapping("/product/{productId}")public String getProductName(@PathVariable Integer productId) {return "IPhone 12";}
}

启动应用

请求url
http://localhost:9000/product/1

在这里插入图片描述

4.4. 刷新sentinel

在这里插入图片描述

4.5. 登录nacos

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.6. sentinel 规则删除

在这里插入图片描述

4.7. nacos规则查看

在这里插入图片描述
规则也随之删除了

4.8. (企业案例)规则扩展

以上只是将流控规则扩展好了,其他需要其他模块,还需要根据官网文档自行扩展

附上:
(企业案例)使用Nacos持久化规则,改造sentinel-dashboard

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

都听我的,会养猪种菜的工程师最帅了!

来了&#xff01;今天&#xff0c;阿里数字农业事业部在黑龙江首次亮相&#xff0c;并且定了一个小目标&#xff1a;到2022年&#xff0c;阿里涉农产品全年网络销售额破4000亿元。 黑龙江省牡丹江市的阿里巴巴响水大米种植基地&#xff0c;又到了收割季 数字农业事业部将建立产…

清华硕士一针见血:这些才是机器学习必备的数学基础

现如今&#xff0c;计算机科学、人工智能、数据科学已成为技术发展的主要推动力。无论是要翻阅这些领域的文章&#xff0c;还是要参与相关任务&#xff0c;你马上就会遇到一些拦路虎&#xff1a;想过滤垃圾邮件&#xff0c;不具备概率论中的贝叶斯思维恐怕不行&#xff1b;想试…

如何查看使用 Cloud Toolkit 部署应用的实时日志

之前&#xff0c;我们介绍了《在 IntelliJ IDEA 中部署应用到服务器》。最新版本 Cloud Toolkit 新增了对远程服务器应用部署时&#xff0c;实时日志的查看功能。功能预览如下&#xff1a; 打开应用部署的配置界面&#xff0c;如上图所示&#xff0c;点击「Advanced」标签页&am…

这 10 个云计算错误,会让你的业务一蹶不振!

作者 | John Edwards译者 | 火火酱&#xff0c;责编 | Carol出品 | CSDN 云计算&#xff08;CSDNcloud&#xff09;封图 | CSDN 付费下载自视觉中国乐观主义者们总爱说&#xff1a;“乌云总是镶着金边的”&#xff0c;但他们没有说的是&#xff0c;在乌云下常有狂风、暴雨、闪电…

MySQL 8.0.26 简易配置安装教程 (windows 64位)

文章目录一、软件下载解压1. 官网下载2.下载完成后解压二、mysql配置2.1. my.ini2.2. 初始化MySQL2.3. 安装MySQL服务2.4. mysql已经安装过了2.5. 启动MySQL的服务三、密码修改3.1. 登录mysql3.2. 修改密码3.3. 退出mysql四、客户端连接mysql4.1. Navicat4.2. 登录mysql4.3. 操…

类与字节码技术

类文件结构 1.1 魔数 0-3字节&#xff0c;表示它是否是【class】类型的文件 ​ |java| 0000000 ca fe ba be 00 00 00 34 00 23 0a 00 06 00 15 09 1.2 版本 4-7字节&#xff0c;表示类的版本00 34 &#xff08;52&#xff09; 表示是Java8 0000000 ca fe ba be 00 00 00…

支付宝 App 是如何建设移动 DevOps 的?

本文系InfoQ对蚂蚁金服技术专家洪锋的采访&#xff0c;洪锋老师即将在 QCon 上海站 2019 分享《移动研发 DevOps 在支付宝 App 内的落地实践》&#xff0c;欢迎关注。 微软 MSDN 上的一篇文章有这样一段话&#xff1a;“移动应用的理想环境需要满足两个条件&#xff0c;一是可以…

淘宝端智能演进和思考

今天分享内容包括三部分&#xff0c;第一是端智能整体趋势和淘宝应用现状&#xff0c;第二是淘宝在应用端智能过程中面临的问题和挑战&#xff0c;以及我们的应对和解决思路&#xff0c;我们构建了端到端的完整技术体系&#xff0c;第三是开源推理引擎 MNN 的最新情况。 01、端…

从零开始入门 K8s | 可观测性:你的应用健康吗?

一、需求来源 首先来看一下&#xff0c;整个需求的来源&#xff1a;当把应用迁移到 Kubernetes 之后&#xff0c;要如何去保障应用的健康与稳定呢&#xff1f;其实很简单&#xff0c;可以从两个方面来进行增强&#xff1a; 首先是提高应用的可观测性&#xff1b;第二是提高应…

技术差的程序员,90%都输在这点上!骨灰级开发:其实都是在瞎努力!

01从未得到过重视的问题“一流程序员学数学&#xff0c;二流程序员学算法&#xff0c;低端看高端就是黑魔法”。可能有人会以为这是段子&#xff0c;而有过开发经验的都知道&#xff0c;这就是程序员的真实写照&#xff01;而数学不好的程序员&#xff0c;我想你开发过程中&…

layui 单选项 点击显示与隐藏 很实用

html <div class"layui-form-item"><label class"layui-form-label">类型</label><div class"layui-input-block"><input type"radio" name"type" lay-filter"type" value"0&quo…

2. 字节码指令

2. 字节码指令 2.1 入门 public cn.itcast.jvm.t5.HelloWorld();构造方法的字节码指令 ​ 2a b7 00 01 b1 2a> aload_0加载slot 0的局部变量&#xff0c;即this&#xff0c;做为下面的invokespecial 构造方法调用的参数b7 >invokespecial预备调用构造方法&#xff0c…

它是真实的“盗梦空间”?在这里,一切都可能是数据

阿里妹导读&#xff1a;位于杭州阿里巴巴西溪园区旁边的大型商场“亲橙里”2018年正式开业。和传统的线下综合型商场不同的是&#xff0c;亲橙里从规划之初就定位为数字化商场&#xff0c;通过植入自研的IBOS平台完成建筑内的所有子系统的接入&#xff0c;而让建筑和建筑内的设…

BDS-HA:构建高可用、低延迟的HBase服务

HBase可以支持百TB数据规模、数百万QPS压力下的毫秒响应&#xff0c;适用于大数据背景下的风控和推荐等在线场景。阿里云HBase服务了多家金融、广告、媒体类业务中的风控和推荐&#xff0c;持续的在高可用、低延迟、低成本方向上进行优化。目前单集群承诺可用性99.9%&#xff0…

layui 表单动态添加、删除input框

html部分 <div class"layui-form-item" ><label class"layui-form-label">路线</label><div class"layui-input-block" id"last"><div class"layui-input-inline">{empty name"$ways&q…

MySQL 可重复读,差点就让我背上了一个 P0 事故!

来源 |程序通事责编 | Carol封图 | CSDN 付费下载自视觉中国P0 事故&#xff1a;余额多扣&#xff01;这是一个真实的生产事件&#xff0c;事件起因如下&#xff1a;现有一个交易系统&#xff0c;每次产生交易都会更新相应账户的余额&#xff0c;出账扣减余额&#xff0c;入账增…

AliOS Things 3.0应用笔记:摄像头配网 + 钉钉群通知 + 天气显示

给AliOS Things一颗STAR 目录 运行流程效果展示 操作流程 环境配置源码结构配置烧录运行 源码讲解 QR扫码部分GUI部分https client部分 运行流程 本示例有如下3个功能&#xff1a; 摄像头配网。推送消息到钉钉群。显示当天天气。操作流程 环境配置 AliOS Things环境安装&a…

与阿里合伙人合影,两年净赚一百万,这个草根姑娘有什么魔力?

大学肄业&#xff0c;网店关闭&#xff0c;公司转手&#xff0c;人生的下一步要怎么走&#xff1f;张昕总沉浸在自己的世界里发呆。 直到两年前&#xff0c;张昕随手往几个群里转发了“购买阿里云服务器”的折扣幸运券&#xff0c;半年后&#xff0c;因订单数量排进前十&#…

借助大数据进行社交媒体营销,企业们得这么玩!

作者 | Annie Qureshi译者 | 火火酱&#xff0c;责编 | Carol出品 | CSDN 云计算&#xff08;CSDNcloud&#xff09;封图 | CSDN 付费下载自视觉中国自上世纪80年代以来&#xff0c;“数据”一词就一直是互联网行业的重要术语。随着人们对数字领域的关注度越来越高&#xff0c;…

聊一聊DNS劫持那些事

作为《DNS攻击防范科普系列》的最后一篇&#xff0c;今天我们来好好聊聊DNS劫持。先回顾一下DNS劫持的概念&#xff1f;DNS劫持即通过某种技术手段&#xff0c;篡改正确域名和IP地址的映射关系&#xff0c;使得域名映射到了错误的IP地址&#xff0c;因此可以认为DNS劫持是一种D…