从0到1实现RPC | 接入Apollo配置中心

一、代码实现

  1. 添加依赖

添加apollo客户端的依赖和spring配置相关依赖

  1. 添加监听器

通过实现ApplicationContextAware接口,获取Spring上下文。

使用@ApolloConfigChangeListener注解监听命名空间rpc-demo-provider.yaml和默认的application.properties。

监听逻辑是当配置中心的属性发生变化时,通过事件发布的形式更新bean的赋值。

  1. 注入监听器bean

服务提供者provider和服务消费者consumer两端都需要接入配置中心。

在consumer端添加注解配置,注入bean

在provider端添加注解配置,注入bean

  1. 启用apollo的配置
  • 设置应用id
  • 设置meta信息,就是配置中心服务地址
  • 启动apollo
  • 设置命名空间,这里一定要写正确,和代码,配置中心保持一致

二、启动Apollo配置中心

我这里使用的是云服务,直接登录使用,设置appid(midnight),添加namespace(rpc-demo-provider),新增配置。

配置内容如下,表示这几个属性支持配置中心动态更新。

三、测试

启动服务提供者provider

发起请求测试,获取meta属性信息,一开始tc=10。

然后在apollo配置中心更新tc=11,点击发布,再次获取值就为11了。

观察下日志:

meta是个hashmap,动态更新后,hashcode值发生了变化,说明产生的是个新的map。

监听日志也说明tc值发生了更新,从10更新为11。

源码地址:

https://github.com/midnight2104/midnight-rpc/tree/lesson13

相关推荐
SelectDB18 分钟前
特征导出卡在 JDBC 上,我换成了 Arrow Flight SQL 试试
大数据·数据库·数据分析
一只旭宝21 分钟前
【网络精讲6】muduo 的组件与接口:可视化了解muduo库
网络·数据库
泡海椒24 分钟前
深度解析JQuick-SQL SQL解析与AST生成机制|分布式SQL原理
数据库·分布式·sql
SelectDB34 分钟前
订单表改成实时更新后,我把主键模型的坑踩了一遍
大数据·数据库·数据分析
devilnumber38 分钟前
Redis 数据类型 + 项目落地场景(面试版,全面、实用,后端常用)
数据库·redis·面试
惠惠软件38 分钟前
PDF加盖骑缝章标注工具,PDF 文档上批量添加骑缝章或盖章的小工具
数据库·pdf·办公文件
SelectDB38 分钟前
压完一轮 TPC-H SF100,我才学会怎么读基准数字
大数据·数据库
鸢尾掠地平1 小时前
MySQL建库命令总结(含练习)
数据库·oracle
网络小江2 小时前
组网第33课:IP 地址与子网——CIDR、掩码、VLSM、网段规划与可用地址速算
网络协议·tcp/ip·子网掩码·vlsm·网络规划
山雀~2 小时前
WebSocket 断连之后:一次手机采集偶现卡死的排查与修复
网络·websocket·网络协议