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

时间:2022-07-23
本文章向大家介绍Sentinel整合Apollo进行规则持久化(三),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

这篇文件在补一下相关验证步骤,网上的很多文章也没有说到这块。

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

如图:

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

这里定义了微服名为pay-service,则flowRuleKey按照规则:

flowDataId = appName + "-flow-rules"

flowRuleKey为pay-service-flow-rules

0x03:验证配置同步

  • 在Apollo修改配置,查询Sentinel是否同步

修改前Sentinel的配置

在Apollo进行修改

修改后Sentinel的配置

  • 在Sentinel修改配置,Apollo查询是否同步

修改前Apollo的配置

在Sentinel进行修改

修改后Apollo的配置