上山打老虎 发表于 2021-7-7 15:22:20

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的配置



  
文档来源:51CTO技术博客https://blog.51cto.com/u_13538361/3001775
页: [1]
查看完整版本: Sentinel整合Apollo进行规则持久化(三)