从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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/560807.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端页面助手 (vue)

快速开发页面(图形化开发页面) 自主编辑 然后自己也可以修改属性 最后导出页面即可 github地址 ;https://github.com/opentiny/tiny-engine

虹科Pico汽车示波器 | 免拆诊断案例 | 2016款保时捷911 GT3 RS车发动机异响

一、故障现象 一辆2016款保时捷911 GT3 RS车,搭载4.0 L水平对置发动机(型号为MA176),累计行驶里程约为4.2万km。车主反映,1星期前上过赛道,现在发动机有“哒哒”异响。 二、故障诊断 接车后试车&#xff…

C++语言·类和对象(下)

1. 初始化列表 我们回忆上节写的MyQueue类,其中有两个栈类和一个int类型,栈类因为其特殊性,要开空间,所以我们必须手搓Stack类的构造函数。但是正常来说MyQueue自动生成的构造函数会调用自定义类型的默认构造函数,也就…

Proxy 代理

意图 为其它对象提供一种代理以控制这个对象的访问。 结构 Proxy保存一个引用使得代理可以访问实体;提供一个与Subject的接口相同的接口,使代理可以用来替代实体;控制实体的存取,并可能负责创建和删除它;其他功能依赖…

【leetcode面试经典150题】63. 删除链表的倒数第 N 个结点(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

现货白银保证金交易要先分析趋势

现货白银是保证金交易品种,买卖过程中可能会涉及数十倍的资金杠杆,所以它对投资者的分析水平和交易水平的要求都比较高,所以在进入这个市场之前,投资者需要先学习一些基本的分析方法,当中可以分为基本面和技术面两大流…

Vmware ---快捷键

Vi 文件名.c xrandr 查看分辨率 xrandr -s 分辨率 调你自己想要的分辨率 ctr shift 放大字体 ctr - 缩小字体 ctr alt t 打开控制台 cd caoshupei 进入曹树培文件夹 cd .. 退回上层文件夹 ls 列出生成的文件 ls -a 显示所有文件,包含隐藏的文件和文件…

2024-4-狼道

2024-4-狼道 2024-4-9 宋犀堃(堃通坤,多用于人名) fatux: 做人当如狗,和蔼可亲;做事当如狼,专注果决。 狼道 智慧生存的强者法则 走向卓越的成功之道 狼道,是追求卓越的野心&am…

第一个Python程序

1、python与java的区别 Python和Java是两种不同的编程语言,它们具有以下一些主要区别: 语法:Python的语法相对简洁和可读性高,使用缩进来表示代码块;而Java的语法更为严格,使用花括号来表示代码块。 类型…

后端-MySQL-week11 事务

事务 简介 操作 有两种方式,一种是设置为手动提交——不执行“commit”不进行变更;另一种是手动开启一个事务,用开启事务的代码(SQL语句)来创建一个需要“commit”才能进行变更的事务 1.第一种方式 2.第二种方式 四…

会声会影2023序列号免费和激活下载(附注册机keygen下载)

安装前准备 1、会声会影2023的安装需要在保证电脑联网的状态下进行。请您确保安装过程中有良好的网络环境,并且在安装过程中不可断网。 2、安装之前,请先退出、关闭360、电脑管家以及杀毒软件。 会声会影2023安装和下载 1、选择您下载版本对应的会声会…

配置使用IPsec安全框架保护RIPng报文

正文共:999 字 11 图,预估阅读时间:1 分钟 前面我们简单介绍了IPv6的基本概念(IPv6从入门到精通),也做了动态路由协议的相关介绍(IS-ISv6配置),还做了一个综合性比较强的…

抓取内网windows密码和利用hash横向及相关问题

目录 实验准备 用msf拿到shell 抓取hash和明文密码 相关问题 问题1.通过hashdump抓取所有用户的密文为什么分成两个模块,这两个模块分别代表什么 ? 问题2.为什么第一个模块 永远是一样的aad3? 问题3.这两个模块的加密算法有什么不同&a…

Android Jetpack学习系列——Room

关于Room: Room是Android Jetpack组件之一,旨在为Android应用程序提供一种简单、强大且易于使用的本地数据库访问解决方案。 关键特性: 1.基于SQLite封装:Room是基于SQLite数据库引擎构建的,提供了面向对象的API来与…

Postgres数据库中的死锁是如何产生的,如何避免和解决?

文章目录 死锁的产生原因如何避免死锁如何解决死锁示例代码查询死锁信息终止事务 在Postgres数据库中,死锁是一种特殊的情况,其中两个或多个事务相互等待对方释放资源,从而导致它们都无法继续执行。这种情况通常发生在多个事务尝试以不同的顺…

Clark Transform的FPGA代码实现讲解

Clark 变换是坐标转换,将输入的三相电流转换到两相直角坐标下电流,如下图为坐标表示方法。 根据坐标的投影我们可以得到 从而可以推知: 上述公式为最终代码中实现的计算公式。 在FPGA中实现时,由于FPGA中不擅长浮点数计算&#xf…

Leetcode刷题-(26~35)-Java

算法是码农的基本功,也是各个大厂必考察的重点,让我们一起坚持写算法题吧。 遇事不决,可问春风,春风不语,即是本心。 我们在我们能力范围内,做好我们该做的事,然后相信一切都事最好的安排就可…

数据结构之排序了如指掌(三)

目录 题外话 正题 快速排序 Hoare法 Hoare法思路 Hoare法代码详解 挖坑法 挖坑法思路 挖坑法代码 前后指针法 前后指针法思路 前后指针法代码 小结 题外话 我们接着把没有写完的排序内容完成,快速排序其实大同小异,大家好好把思路整理一下 正题 快速排序 快速排序一…

WideDeep

这里写目录标题 1. 背景2. 贡献3 模型结构(1)任务定义(2)The Wide Component(3)The Deep Component(4)联合训练Wide和Deep Model 4. 参考 1. 背景 (1) 广义线性回归通常被用于推荐模…

树莓派+Openwrt连接校园网,打破校园网设备限制

前言 因为本校学生校园网只允许最多三个设备登录,对于同时拥有多个联网设备的我十分不友好,而且大多单片机如esp32的wifi模块是只允许一般的WPA/WPA2认证的,是不支持校园网的portal认证。所以我决定搞一个路由器。 然后我上网买了一个TP-Li…