# 《大营销平台系统设计实现》 - 营销服务 第29节:分布式动态配置活动降级

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

  • 本章难度:★★★☆☆
  • 本章重点:基于 Zookeeper 实现分布式动态配置中心服务,用于分布式应用节点系统中的环境属性值变更。
  • 课程视频https://t.zsxq.com/m81oK (opens new window)

版权说明:©本项目与星球签约合作,受《中华人民共和国著作权法实施条例》 (opens new window) 版权法保护,禁止任何理由和任何方式公开(public)源码、资料、视频等内容到Github、Gitee等,违反可追究进一步的法律行动。

# 一、本章诉求

基于 Zookeeper 实现分布式动态配置中心服务,用于分布式应用节点系统中的环境属性值变更。这样我们可以让所有分布式系统中,类下的属性值做动态的调整,及时的对系统进行;切量、熔断、降级、黑白名单等用途。

在互联网公司中面向C端的应用场景,有非常多的动态配置使用,包括你看到的一些金融场景的额度费率、电商场景的特惠商品、出行场景的促销活动,都会有一些动态配置的使用。那么本节小傅哥就从原理到应用带着大家来实现一下。

# 二、业务流程

如图,动态配置组件实现方案;

以Zookeeper为配置中心服务,基于 Zookeeper 的节点监听值变更机制,动态修改应用程序中属性值。

  • 首先,我们需要定义出一个 Zookeeper 监听的配置路径,一般这个路径在配置中心中是申请的系统使用地址,以确保值的唯一。
  • 之后,每个类对应的属性,需要映射出一个监听的节点。比如;Zookeeper 监听了 /big-market-dcc/config 那么类中 a 属性可以是 /big-market-dcc/config/a 这对这个路径设置的值,就可以被监听拿到了。
  • 最后,把获取到的监听值,通过 Java 反射操作,把值设置到对应的属性上。这样在 SpringBoot 应用程序中,使用某个类的属性值的时候,就可以动态的获取到变化的属性值了。