使用配置中心(v1.10.0)
优质
小牛编辑
131浏览
2023-12-01
配置中心提供的功能
- 接入方管理:统一管理appKey、secret、公私钥
- 权限管理:对某些接入方开放部分接口
- 限流管理:配置接口限流功能(如秒杀场景可用到)
配置中心与接口应用分离,它们的交互方式采用Netty长连接保持通讯,并支持断开重连。交互图:
- 接口服务器启动之后会自动连接到配置中心
- 配置中心修改配置会推送给接口服务器,接口服务器会立马生效,这里采用长连接方式
配置中心使用方法
启动服务端(easyopen-config)
- 导入apiconf-demo.sql脚本
- 配置application.properties
- 启动后访问:http://localhost:8070/
- 用户名密码:admin 123456
注意: 建议先启动配置中心,再启动server接口应用。如果server先启动,发现配置中心没启动,会尝试加载本地配置,如果本地没有配置就启动失败。必须要正确连上配置中心一次后,下载配置文件到本地,之后启动顺序可以随意。
启动前端页面(vue项目)
- 前提:先安装好npm,npm安装教程。建议使用淘宝镜像。
- 打开src/utils/ApiUtil.js,修改url
然后打开命令行窗口,输入下面命令
# 初始化
cnpm install
# 启动,随后出现一个url,直接复制到浏览器即可
cnpm run dev
接口应用项目配置(easyopen-server-manual)
配置中心启动完毕后,需要有接口应用连接过来。
- 注意:这里的配置说明是接口应用,即demo下面的应用, 不是 配置中心
接口应用使用配置中心步骤如下:
打开IndexController.java
- 去掉默认的appKey,Secret配置
去掉下面这个配置
Map appSecretStore = new HashMap(); appSecretStore.put("test", "123456"); apiConfig.addAppSecret(appSecretStore);
- 去掉已有的限流配置
apiConfig.setLimitManager(new ApiLimitManager(redisTemplate));
- 添加下面配置代码
// 配置拦截器
apiConfig.setInterceptors(new ApiInterceptor[] {
// 限流拦截器(配置中心)
new LimitInterceptor() ,
// 权限拦截器(配置中心)
new PermissionInterceptor()
... 其它拦截器
});
/* -----------------配置中心------------------ */
/*
* appName 应用名称,应用名称,不能重复
* host 配置中心ip,config服务器ip
* port 配置中心端口,对应config中的netty.server.port
*/
ConfigClient configClient = new ConfigClient("app1", "localhost", 8071);
/*
如果要使用分布式业务限流,使用下面这句。默认是单机限流
configClient.setLimitManager(new ApiLimitManager(redisTemplate, new ApiLimitConfigLocalManager()));
*/
apiConfig.setConfigClient(configClient);
/* -------------------------------------- */
配置完先启动配置中心,在启动server程序