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]