从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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源大模型王者归来:llama3最大4000亿参数,性能GPT4相当,超越Grok3140亿且全开源代码

llama3&Grok 目前开源的超级大模型有Gork和Llama3 https://github.com/xai-org/grok-1;该模型称为史上最大开源LLM,参数高达3140亿!马斯克如约开源Grok,10小时狂揽10000颗Star,搞笑的是这个模型只开源了推理没有训…

17.Nacos与Eureka区别

Nacos会将服务的提供者分为临时实例和非临时实例。默认为临时实例。 临时实例跟eureka一样,会向注册中心报告心跳监测自己是否还活着。如果不正常了nacos会剔除临时实例。(捡来的孩子) 非临时实例,nacos会主动询问服务提供者是否…

古董展新风尚:山海鲸数据大屏引领科技潮流

在数字化浪潮的推动下,传统文化与现代科技正日益融合,展现出独特的魅力。近日,山海鲸推出了一款古董展览数据可视化大屏,将古董藏品的丰富内涵以直观、生动的形式呈现在观众面前,让人们在欣赏古董之美的同时&#xff0…

深入探索GDB:Linux下强大的调试神器

目录 一、GDB简介:源码级调试的基石 二、GDB基础操作:从入门到熟练 启动与基本命令 三、GDB进阶功能:解锁更深层次的调试能力 1. 回溯追踪:洞察调用栈 2. 动态内存检测:揪出内存问题 3. 条件断点与观察点&#…

制氢机远程监控运维方案

制氢机远程监控运维方案 在当今能源转型的大背景下,氢能作为清洁、高效且可再生的能源载体,其重要性日益凸显。而制氢机作为氢能产业链中的关键设备,其稳定运行与高效运维对于保障氢气供应、推动氢能产业健康发展至关重要。在此背景下&#…

基于Linux系统命令行安装KingbaseES数据库

人大金仓通用性数据库(Kingbase)下载网址:人大金仓-成为世界卓越的数据库产品与服务提供商 选择“软件版本-数据库”,筛选条件Linux、完整版。找到需要的版本,点击下载。我下载的是KingbaseES_V008R006C008B0014_Lin6…

实现Spring底层机制(二)

文章目录 阶段2—封装bean定义信息到Map1.代码框架图2.代码实现1.文件目录2.新增注解Scope存储单例或多例信息Scope.java3.修改MonsterService.java指定多例注解4.新增bean定义对象存储bean定义信息BeanDefinition.java5.修改pom.xml增加依赖6.修改容器实现bean定义信息扫描Sun…

nginx开启basic认证

basic认证也叫做http基本认证,防止恶意访问 首先用在线网站生成一个叫做htpasswd的账号密码文件。 将生成结果复制到/etc/nginx/htpasswd文件中 在server的location中配置 server { listen 80; server_name a.com;location / { root html;index index.…

springcloud alibaba 整合seata的TCC

一、seata服务端搭建同上篇。 Seata的AT模式客户端两阶段提交流程源码分析 二、seata客户端的结构 1.示例DEMO工程 下单,扣余额, 减库存。 2. MAVEN配置。 父工程:由于spring-cloud-starter-alibaba-seata依赖的seata-spring-boot-starter…

顺序栈着三种结构定义及其初始化

定义 顺序堆栈这三种结构定义及其初始化 - 知乎 (zhihu.com) 根据以上链接得到: 1.理解为数组,top是这个数组的索引值;定义这个结构体类型时,系统不分配空间 在主函数声明时,定义了关于这个结构体的变量&#xff0c…

Java 【数据结构】 二叉树(Binary_Tree)【神装】

登神长阶 第五神装 二叉树 Binary-Tree 目录 🎷一.树形结构 🪗1.概念 🎸2.具体应用 🎹 二.二叉树(Binary Tree) 🎺1.概念 🎻2.表现形式 🪕3.特殊类型 &#x1f941…

自己手动在Linux上实现一个简易的端口扫描器

背景 常常听到网络攻击有一个东西叫做端口扫描器,可以扫描指定服务器开放的端口,然后尝试连接,并寻找漏洞,最终攻破服务器。而那些使用的端口扫描器都是一个个现成的程序,看上去很厉害的样子。而实际上这些东西对于懂…

【前端技术】HTML基础入门篇

1.1 HTML简介 ​ HTML(HyperText Markup Language:超文本标记语言)是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组…

投资网站汇总

1、 中信证券(600030)历年财务指标——亿牛网https://eniu.com/gu/sh600030/cwzb 2、 3、 4、

每日一题 —— 最大子数组之和(动态规划)

1.链接 53. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; 2.描述 3.思路 4.参考代码 class Solution { public:int maxSubArray(vector<int>& nums) {int n nums.size();vector<int> dp(n1,0);int ret INT_MIN;for(int i 1;i<n;i){dp[i] ma…

跟着野火从零开始手搓FreeRTOS(6)多优先级的配置

在 FreeRTOS 中&#xff0c;数字优先级越小&#xff0c;逻辑优先级也越小。 之前提过&#xff0c;就绪列表其实就是一个数组&#xff0c; 里面存的是就绪任务的TCB&#xff08;准确来说是 TCB 里面的 xStateListItem 节点&#xff09;&#xff0c;数组的下标对应任务的优先级&a…

【Camera Sensor Driver笔记】五、点亮指南之Actuator配置

<slaveInfo> actuatorName dw9714v dirver IC 型号 slaveAddress 0x18 i2c write address i2cFrequencyMode FAST i2c 操作频率(400KHz) actuatorType VCM/BIVCM 马达类型 BIVCM&#xff08;中置马达&#xff…

ROS 2边学边练(33)-- 写一个静态广播(C++)

前言 通过这一篇我们将了解并学习到如何广播静态坐标变换到tf2&#xff08;由tf2来转换这些坐标系&#xff09;。 发布静态变换对于定义机器人底座与其传感器或非移动部件之间的关系非常有用。例如&#xff0c;在以激光扫描仪中心的坐标系中推理激光扫描测量数据是最简单的。 这…

服务器 BMC(基板管理控制器,Baseboard Management Controller)认知

写在前面 工作中遇到&#xff0c;简单整理博文内容涉及 BMC 基本认知理解不足小伙伴帮忙指正 不必太纠结于当下&#xff0c;也不必太忧虑未来&#xff0c;当你经历过一些事情的时候&#xff0c;眼前的风景已经和从前不一样了。——村上春树 基板管理控制器&#xff08;BMC&…

数字孪生创新工作流,助力百年大桥翻修

利用 Bentley 的 iTwin Capture 和 iTwin Experience 创建数字孪生模型&#xff0c;将现场施工时间缩短了 20% 重要交通枢纽焕然一新 罗伯特街大桥位于明尼苏达州圣保罗市&#xff0c;外观呈彩虹样拱形&#xff0c;近 100 年来一直是圣保罗市的标志性建筑。这座八跨钢筋混凝土…