服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - 使用 Nacos 存储 Sentinel 规则信息

使用 Nacos 存储 Sentinel 规则信息

2021-05-21 01:13运维开发故事老郑 编程技术

我们可以通过 Zookeeper , Applo , Nacos 等配置中心将这些规则配置存储起来,让服务重启或者启动多节点的时候可以共享配置数据。

使用 Nacos 存储 Sentinel 规则信息

Sentinel 规则配置,一旦我们重启服务过后,所有的规则都会消失。我们可以通过 Zookeeper , Applo , Nacos 等配置中心将这些规则配置存储起来,让服务重启或者启动多节点的时候可以共享配置数据。

之前的项目我们通过 Nacos 来作为服务注册中心和服务配置中心,我们也可以将 Nacos 作为 Sentinel 的配置数据存储仓库,来为我们提供Sentinel 配置数据的持久化。 如下图所示

使用 Nacos 存储 Sentinel 规则信息

增加 Nacos 存储依赖

 

需要独立引入如下依赖,来申明 sentinel 的规则数据存储在 nacos 中。

  1. <dependency> 
  2.   <groupId>com.alibaba.csp</groupId> 
  3.   <artifactId>sentinel-datasource-nacos</artifactId> 
  4. </dependency> 

添加 YML 配置

 

我们如果使用 Sentinel 的独立数据源功能,那么需要在 yaml 文件中申明数据源配置信息。

  1. spring: 
  2.   application: 
  3.     name: stock-service 
  4.   profiles: 
  5.     active: dev 
  6.   cloud: 
  7.     sentinel: 
  8.       transport: 
  9.         port: 8719 
  10.         dashboard: localhost:8080 
  11.       enabled: true 
  12.       datasource: 
  13.         ds: 
  14.           nacos: 
  15.             dataId: ${spring.application.name}-flow-rules 
  16.             groupId: DEFAULT_GROUP 
  17.             data‐type: json 
  18.             rule‐type: flow 

Nacos 增加配置

 

在 Nacas 配置中心,我们需要添加规则配置并且发布,这里需要注意 dataId 和 groupId 一定不要搞错,不然会导致找不到数据配置,如下图所示:

使用 Nacos 存储 Sentinel 规则信息

数据模板

  1.   { 
  2.     "resource""abc"
  3.     "controlBehavior": 0, 
  4.     "count": 20.0, 
  5.     "grade": 1, 
  6.     "limitApp""default"
  7.     "strategy": 0 
  8.   } 

最后我们启动服务和 Sentinel 控制台,就可以在流控信息这个菜单下面查看到我们在配置中心定义的流控信息。

 Sentinel 查看配置

 

使用 Nacos 存储 Sentinel 规则信息

总结

至此我们就完成了,Sentinel 对规则持久化到 Nacos 的全部操作。这里有一个小小的问题就是我们在 Sentinel 控制台修改规则过后默认不能直接同步到 Nacos 中,如果需要同步到 Nacos 中的需要修改 Sentinel 控制台的源码,配置信息通过 “推模式”同步到 Nacos 中存储。

更多的 Sentinel 使用可以参考官方文档,文档地址:

https://github.com/alibaba/Sentinel/wiki/Sentinel-%E6%8E%A7%E5%88%B6%E5%8F%B0%EF%BC%88%E9%9B%86%E7%BE%A4%E6%B5%81%E6%8E%A7%E7%AE%A1%E7%90%86%EF%BC%89#%E8%A7%84%E5%88%99%E9%85%8D%E7%BD%AE

原文链接:https://mp.weixin.qq.com/s/Kc-ErhQiXEyJkyjnUfahpQ

延伸 · 阅读

精彩推荐
  • 编程技术让开发效率倍增的 VS Code 插件

    让开发效率倍增的 VS Code 插件

    今天来分享一些提升开发效率的实用 VS Code 插件!Better Comments 扩展可以帮助我们在代码中创建更人性化的注释,有不同形式和颜色的注释供我们选择。 ...

    前端充电宝7132022-04-21
  • 编程技术AIOps,SRE工程师手中的利器

    AIOps,SRE工程师手中的利器

    AIOps开始成为一种极为重要的站点可靠性工程工具。它能够高效吸纳观察数据、参与数据以及来自第三方工具的数据,判断系统运行状态并保证其处于最佳...

    至顶网5972021-03-08
  • 编程技术Delphi - Indy idMessage和idSMTP实现邮件的发送

    Delphi - Indy idMessage和idSMTP实现邮件的发送

    这篇文章主要介绍了Delphi - Indy idMessage和idSMTP实现邮件的发送,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    JJ_JeremyWu6592020-09-22
  • 编程技术2021年值得关注的React PDF 库

    2021年值得关注的React PDF 库

    今天,许多网络应用程序为其用户提供内置的PDF浏览选项。然而,选择一个并不容易,因为它们的功能远远超过显示PDF。在这篇文章中,我将评估5个React的...

    TianTianUp5232021-06-21
  • 编程技术简单、好懂的Svelte实现原理

    简单、好懂的Svelte实现原理

    本文会围绕一张流程图和两个Demo讲解,正确的食用方式是用电脑打开本文,跟着流程图、Demo一边看、一边敲、一边学...

    魔术师卡颂4822021-11-10
  • 编程技术真正聪明的程序员,总有办法不加班

    真正聪明的程序员,总有办法不加班

    工作效率提升了,就可以少加班了,聪明的程序员,总会有一堆可以提升编码效率的工具?当一种工具满足不了工作需求,就去探索新的,今天纬小创就给...

    今日头条12482021-03-04
  • 编程技术用户态 Tcpdump 如何实现抓到内核网络包的?

    用户态 Tcpdump 如何实现抓到内核网络包的?

    在网络包的发送和接收过程中,绝大部分的工作都是在内核态完成的。那么问题来了,我们常用的运行在用户态的程序 tcpdump 是那如何实现抓到内核态的包...

    开发内功修炼11612021-09-08
  • 编程技术从Context源码实现谈React性能优化

    从Context源码实现谈React性能优化

    这篇文章主要介绍Context的实现原理,源码层面掌握React组件的render时机,从而写出高性能的React组件,源码层面了解shouldComponentUpdate、React.memo、PureComponen...

    魔术师卡颂5312020-12-20