基于Zookeeper手写配置中心

一、原生API
1.Zookeeper API
2.Apache Curator api
3.基于Zookeeper实现配置中心、利用ZNode节点存储数据的功能
二、本地配置
1.基本上所有的配置信息都会存放到Spring生态中的Environment对象中的属性配置源中
(1)解析app.properties文件并且放到env中 作为Spring开发者,在业务代码中肯定随时都要用属性
(2)@Value依赖注入,就可以对字段进行赋值操作,这样就可以后置处理器以及evn关联起来了
  (1)使用BeanPostProcessor解析类上的@Value字段
  (2)获取到字段上的@Value字段
  (3)解析@Value字段的value属性值,比如age
  (4)从environment中的属性配置源OriginTrackedMapPropertySource中寻找age的key
  (5)根据key获取到对应的value值
  (6)通过field反射的方式设置value值
2.本地配置存在的问题
   (1)对于多个重复的配置,发现每个项目中都需要进行维护,比如username passwoord, 如果哪天修改了用户名和密码
   (2)Spring Boot项目肯定需要使用该配置信息,项目获取配置内容咯
3.Spring Boot项目启动
4.apache curator:获取数据 1 mobile 6000 业务使用
5.能否将获取到的数据保存到spring的evn的属性配置源中
6.a-Spring Boot源码既然不能修改,那怎么将curator拉取数据的内容,放到Spring Boot的执行流程中呢?
7.Spring生态中的常见扩展机制:就是不修改Spring源码的前提下,把想要的代码
   7.1ApplicationContextInitializer
   7.2事件监听机制
   7.3BeanPostProcessor
   7.4BeanFactoryPostProcessor
   7.5ApplicationRunner...
   7.6初始化器的加载

8.回调
9.@Value只赋值一次,后续的更新没有重新赋值,怎么办?
10.解决方案
  (1)让Spring重新执行一次refresh方法,不行 AutowriteAnnoPostProcessor
  (2)我们来写一个解决方案
11.要给这些字段重新赋值:什么重新赋值呢?当收到watch通知的时候,通知赋值
12.Spring Cloud Zookeeper
13.前提:安装好zk server
14.zk server 单独的中间件
15手写的配置中心:拉取数据 && 动态更新数据
   15.1Spring cloud zookeeper:spring cloud团队实现 
   15.2dubbo + zookeeper: dubbo团队实现
   15.3spring cloud alibaba nacos:ali nacos团队实现
(1)拉取数据
(2)数据更新之后的重新赋值的问题
16放到优先级更高的bootstap中,优先级最高
17.PropertySourceBootstrapConfiguration
18.Spring Cloud Zookeeper
19.扩展机制的入口 监听机制
  (1)销毁ProductController
  (2)根据最新的属性创建ProductController

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值