栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

apollo 架构源码阅读(1)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

apollo 架构源码阅读(1)

apollo 架构源码阅读

阅读源码的基础步骤:

  1. 框架的主要功能,解决什么的问题(它的定位,介绍)
  2. 框架的应用总体架构,架构中的模块的定位以及其主要功能
  3. 找到开源框架的wiki 了解设计思想,可以帮助更加快速理解框架的设计思路,帮更加易于吸收
  4. 找到初始化的配置,沿着主线功能(拆分主要流程 依次源码阅读),需要记录其中用到的设计模式,还有他的奇淫异巧

介绍:

为了解决spring 容器在启动之后,相关的配置想要更新,却需要重启,才能生效新的配置

其提供了

  1. 管理端服务portal(图形界面)
  2. client服务
  3. adminService中心
  4. configService配置中心

辅助的组件

  1. metaService 为了让非java语言可以适用apollo的功能,增加这个metaService作为一个代理,可以帮助获取adminService,configService的服务地址
  2. eureka 注册中心
  3. nignxLb 让不同的适用 php net语言,通过http的方式 有ngixlb 转发去获取metaService的服务

整体架构

主要关注的是客户端如何实现动态更新bean的值

  1. 服务端发布或者修改配置,保存后通知apollo中心
  2. apollo 中心通知所有客户端,有配置更新了
  3. 客户端接口到变更的信息,查看变更的配置比较判断,发现自己这边有对应配置被修改就主动到configService拉取配置信息

设置了一系列的可以值,来确保能够区分应用,环境,空间,集群

关于客户端的内的实现:

以下会挑选其中的模版部分设计来单独讲解

精华部分:

  1. http 长轮训的设计

    http 的长轮训操作

  2. 客户端的SLB负载

  3. spring beanFactoryPostproposs修改bd(1. 客户端的同步更新Spring容器中注入的@Value的值)

  4. Apollo 如何实现让自己的配置优先级最高

如何实现bean value值的动态替换

  1. 为什么要使用Spring deferredResult的使用

为什么要使用DeferredResult

参考:https://mp.weixin.qq.com/s/-hUaQPzfsl9Lm3IqQW3VDQ

源码分析:https://blog.csdn.net/zk4042602/article/details/123514663

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007948.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号