dashborad 支持持久化么?

dashborad 支持持久化么?

展开
收起
真的很搞笑 2023-04-18 10:54:38 231 分享 版权
2 条回答
写回答
取消 提交回答
  • sentinel-dashboard默认使用内存存储数据,可以通过简单的配置,把数据源设置为nacos,实现持久化

    2023-04-18 19:05:11
    赞同 展开评论
  • CSDN全栈领域优质创作者,万粉博主;InfoQ签约博主;华为云享专家;华为Iot专家;亚马逊人工智能自动驾驶(大众组)吉尼斯世界纪录获得者

    我们知道,Sentinel dashboard默认是是没有持久化功能的,都是保存在内存中的,对于sentinel客户端同样如此,当在sentinel dashboard配置规则的时候,dashboard会获取对应应用配置的dashboard给应用传递消息的http,将规则通过HTTP请求发送给sentinel客户端,同样,sentinel客户端也是没有持久化的都是放在内存中的。 sentinel dashbord通过HTTP向sentinel客户端获取客户端的限流配置,而在dashboard更新配置之后则通过HTTP向sentinel客户端推送更新的限流配置。 sentinel dashboard和sentinel客户端两个都各自开启了HTTP服务用来通信,sentinel dashboard开启的是一个正常的web应用,比如默认用spingboot就是基于tomcat,而sentinel客户端同样也会开启端口,让dashbaoard请求发送消息给sentinel客户端,值只不过这个客户端是一个简易的HTTP实现,实现就是基于常规的ServerSocket去实现的。而不管是sentinel dashboard将规则推送给sentinel客户端,还是sentinel客户端将相关信息推送给sentinel dashboard,sentinel dashboatd和sentinel客户端都是保存在内存中的 如果sentinel-dashboard重启,或者sentinel客户端重启,两者数据都会丢失,这对于生产肯定是不行的,因此需要进行持久化。 查看相关源码之后,我觉得可以通过两种方式

    sentinel提供了DataSource方式,将需要保存的数据放在datasouce中,dashboard操作datasouce中数据,而sentinel客户端则从datasouce中拉取数据 这里我们以网上常说的基于Nacos为例来说明。

    Sentinel Datasource 在说这个之前,需要说下sentinel中的Datasource,可以理解为这是对sentinel配置存储的一个抽象, 我们以大家常见的spring cloud位列,说下这个是怎么生效的。 在sentinel spring cloud中,提供了SentinelProperties的配置类,其中有一个: private Map<String, DataSourcePropertiesConfiguration> datasource = new TreeMap<>( String.CASE_INSENSITIVE_ORDER);则是配置Datasource的入口, 而DataSourcePropertiesConfiguration中有如下几种配置:

    
    public class DataSourcePropertiesConfiguration {
    
    private FileDataSourceProperties file;
    
    private NacosDataSourceProperties nacos;
    
    private ZookeeperDataSourceProperties zk;
    
    private ApolloDataSourceProperties apollo;
    
    private RedisDataSourceProperties redis;
    
    private ConsulDataSourceProperties consul;
    }
    
    2023-04-18 13:25:43
    赞同 展开评论

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系列产品 Serverless 化。RocketMQ 中文社区:https://rocketmq-learning.com/

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理