评论

收藏

[NoSQL] Sentinel整合Apollo进行规则持久化(三)

数据库 数据库 发布于:2021-07-07 15:22 | 阅读数:379 | 评论:0

  0x01:按照约定规则配置Key
  上篇文章把如下代码注释了
 String flowDataId = ApolloConfigUtil.getFlowDataId(appName);
  然后写死了
String flowDataId = "flowRules";
  今天来分析一下如果不写死这个flowDataId,而是使用原来的代码如何在Apollo配置中心配置Key,和在微服中如何定义flowRulesKey。
  先看下ApolloConfigUtil的源码:
package com.alibaba.csp.sentinel.dashboard.rule.apollo;/** * @author hantianwei@gmail.com * @since 1.5.0 */public final class ApolloConfigUtil {    public static final String FLOW_DATA_ID_POSTFIX = "-flow-rules";    private ApolloConfigUtil() {    }    public static String getFlowDataId(String appName) {        return String.format("%s%s", appName, FLOW_DATA_ID_POSTFIX);    }}
  可以看出flowDataId = appName + "-flow-rules",即微服务名 +常量"-flow-rules"。
  0x02:Apollo配置中心新建配置
  微服务名对应配置文件application.yml的
spring:  application:    name: xxxxx
  如图:
DSC0000.png

  0x03:微服务配置文件修改
DSC0001.png

  这里定义了微服名为pay-service,则flowRuleKey按照规则: 
  flowDataId = appName + "-flow-rules"
  flowRuleKey为pay-service-flow-rules
  0x03:验证配置同步

  •   在Apollo修改配置,查询Sentinel是否同步
  修改前Sentinel的配置
DSC0002.png

  在Apollo进行修改
DSC0003.png

  修改后Sentinel的配置
DSC0004.png


  •   在Sentinel修改配置,Apollo查询是否同步
  修改前Apollo的配置
DSC0005.png

  在Sentinel进行修改
DSC0006.png

  修改后Apollo的配置
DSC0007.png

DSC0008.jpeg


  
关注下面的标签,发现更多相似文章