从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

相关推荐
一条小小yu1 分钟前
Text-to-SQL Agent
数据库·sql
Dovis(誓平步青云)31 分钟前
现场问题先关闭还是先验收,建筑任务怎样处理依赖
前端·javascript·数据库·mysql·音视频
dishugj36 分钟前
HANA监控、巡检与切换演练
数据库·oracle
a努力。1 小时前
四维解析Agent记忆架构:从零实战LangGraph长期记忆
java·开发语言·数据库
ss2731 小时前
PG实战笔记 | 04 PostgreSQL市场地位与实际案例
数据库·postgresql
众链网络2 小时前
Agent 重试的工程解法:幂等、断点续跑与熔断怎么落地
java·前端·数据库·人工智能
oradh2 小时前
Oracle 索引维护操作总结
数据库·oracle
for_ever_love__2 小时前
MySQL Online DDL 完全指南:INSTANT/INPLACE/COPY 三种算法、MDL 锁事故与 gh-ost 实战
数据库·mysql·ddl·online·gh-ost·锁表·加字段
for_ever_love__2 小时前
MySQL 子查询、派生表与 CTE 优化:半连接、物化和递归实战
数据库·mysql·优化·as·子查询·with·cte
盛世宏博智慧档案2 小时前
TCP以太网温湿度传感器:从RS485痛点突围到工业组网实战
网络·网络协议·tcp/ip