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

网友投稿 295 2022-11-08

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

今天就最终实现:Sentinel整合Apollo进行规则持久化

0x01:先把Apollo配置中心启动

主要启动如下三个服务:

apollo-configservice:提供配置获取接口,提供配置更新推送接口,接口服务对象为Apollo客户端

apollo-adminservice:提供配置管理接口,提供配置修改、发布等接口,接口服务对象为Portal,以及Eureka

apollo-portal:提供Web界面供用户管理配置

0x02:sentinel-dashboard代码改动

【Sentinel整合Apollo进行规则持久化​​】​​整体只是把相关代码移动了一些位置,现在还需做些许改动。

配置类设置参数

根据实际情况修改Apollo管理后台地址和开发平台授权token

Apollo管理后台地址

token

FlowRuleApolloProvider修改

FlowRuleApolloPublisher修改:

备注:这里要注意如果使用ApolloConfigUtil.getFlowDataId()方法获取flowDataId,则在Apollo配置中心需要按照约定建立配置项的Key。

改造完成后,并可以启动sentinel-dashboard

0x03:Apollo配置中心添加配置

添加配置并发布

源码

flowRules = [{"app":"pay-service","clusterMode":false,"controlBehavior":0,"count":300,"gmtModified":1596855658214,"grade":1,"id":1,"limitApp":"default","resource":"/getUser","strategy":0}]degrades = [{"resource": "/getUser","count": 50,"timeWindow": 5,"grade": 0},{"resource": "/getUser","count": 5,"timeWindow": 8,"grade": 2},{"resource": "/erro","count": 0.5,"timeWindow": 5,"grade": 1}]authoritys = [{"resource": "/getUser","limitApp": "192.168.12.215","strategy": 1}]paramflows = [{"resource": "/getUser","grade": 1,"paramIdx": 1,"count": 10,"paramFlowItemList": []}]systems = [{"qps": 20}]

0x04:微服务改造

新建项目olive-apollo-sentinel-datasource,对应的pom.xml文件

getUser() { Map result = new HashMap<>(); result.put("code", "000000"); result.put("message", "ok"); return result; }}

新建SpringBoot启动类

package com.olive;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}

启动微服务

0x05:测试验证

访问接口

http://localhost:8866/getUser

访问Sentinel

备注:可以通过修改相关配置来验证,Apollo和Sentinel是否相互同步,即在Apollo修改后,是否Sentinel能获取最新配置;或者在Sentinel修改后,是否Apollo能获取最新配置。

最后,这里只改造了流控规则,其他规则的改造与以上改造一致

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于FPGA实现UTOPIA LEVEL2接口时序的的发送和接收模块设计
下一篇:Spring Boot实现热部署的五种方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~