当同一个项目部署多个节点,或者多个项目部署在不同的jvm实例上,因为没办法共享内存。那共享项目的配置参数就成了一个问题,当然解决的办法很多,一起读数据库,一起读redis/memcahed,读本地缓存,修改的时候再一个个去触发。这些方案或多或少都会有效率或者时效性比较低的问题。

    可能是被人问多了几次,我觉得用zk来实现这种配置中心的方案也是很方便的,不怕效率问题的,就实时去读zk。兼顾效率和时效性的就有了下面这种实现。

    基于zookeeper的分布式一致性配置中心

    每个项目的本地缓存初始化会主动去读取zk集群中相关配置,同时会监听对应配置的改变,及时修改本地的内容。而我们的项目每次只需要读取其中的本地缓存中的配置即可。本项目内,缓存配置的读写采用了本地读写锁。而跨项目之间的配置的写和更新,则采用了zk实现的分布式读写锁。具体的实现,可以看https://github.com/linsongze/consistent_config

相关文章:

  • 2021-05-29
  • 2021-04-03
  • 2021-11-29
  • 2021-08-10
  • 2021-12-30
  • 2021-09-22
  • 2022-01-23
  • 2022-01-22
猜你喜欢
  • 2021-12-20
  • 2021-06-20
  • 2021-05-17
  • 2021-09-23
  • 2022-03-01
  • 2021-09-10
相关资源
相似解决方案