【微服务|Sentinel】sentinel数据持久化

持久化流程

为什么持久化?不持久化,重启应用,数据就没了啊。这也就是所谓的原始模式。

我们推荐通过控制台设置规则后将规则推送到统一的规则中心,客户端实现 ReadableDataSource 接口端监听规则中心实时获取变更。

流程如下:【微服务|Sentinel】sentinel数据持久化

DataSource 扩展常见的实现方式

  • 拉模式:客户端主动向某个规则管理中心定期轮询拉取规则,这个规则中心可以是 RDBMS、文件,甚至是 VCS 等。这样做的方式是简单,缺点是无法及时获取变更;
  • 推模式:规则中心统一推送,客户端通过注册监听器的方式时刻监听变化,比如使用 Nacos、Zookeeper 等配置中心。这种方式有更好的实时性和一致性保证。

我们来看看都有哪几种模式以及他们之间的区别。

【微服务|Sentinel】sentinel数据持久化

pom文件依赖

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

yaml配置

spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8080
#        port: 8719
#        client-ip: localhost
      eager: true
      web-context-unify: false
      datasource:
        # 规则命名:可以任意命名
        flow-rule:
          # 持久化在nacos中,还可选择zookeeper,consul等
          nacos:
            # nacos服务地址
            server-addr: ip:8848
            namespace: 45de6484-833e-4cce-b895-f14095f20605
            group-id: SENTINEL_GROUP
            # 配置DataId
            data-id: ossa-service-producer-flow-rule
            data-type: json
            # 流控规则:FLOW,DEGRADE,PARAM_FLOW等
            rule-type: flow

nacos配置

【微服务|Sentinel】sentinel数据持久化

[
  {
    "resource""/test",
    "limitApp""default",
    "grade"1,
    "count"2,
    "strategy"0,
    "controlBehavior"0,
    "clusterMode"false
  },
    {
    "resource""/producer/{id}",
    "limitApp""default",
    "grade"1,
    "count"2,
    "strategy"0,
    "controlBehavior"0,
    "clusterMode"false
  }
]


原文始发于微信公众号(步尔斯特):【微服务|Sentinel】sentinel数据持久化

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/48165.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!