没有合适的资源?快使用搜索试试~ 我知道了~
本文来自infoq,本文将介绍 Twitter的动态配置系统ConfigBus。ConfigBus包括存储配置的数据库、将配置分发到 Twitter数据中心中的机器的管道、读取和更新配置的API和工具。动态配置能够在不重新启动应用程序的情况下更改正在运行的系统的行为和功能。理想的动态配置系统使服务开发人员和管理员能够方便地查看和更新配置,并高效可靠地向应用程序提供配置更新。它使组织能够快速、大胆地迭代新特性,并提供工
资源推荐
资源详情
资源评论
ConfigBus::Twitter的动态配置实践的动态配置实践
动态配置能够在不重新启动应用程序的情况下更改正在运行的系统的行为和功能。理想的动态配置系统使服务开发人员和管理
员能够方便地查看和更新配置,并高效可靠地向应用程序提供配置更新。它使组织能够快速、大胆地迭代新特性,并提供工
具,减少与更改现有系统相关的风险。
在 Twitter 的早期,应用程序管理并分发自己的配置,通常存储在 ZooKeeper 中。但是,我们以前使用 ZooKeeper 的经验表
明,它在用作通用键值存储时不能伸缩。其他团队转而使用 Git 进行存储,并结合自定义的工具来更新、分发和重新加载配
置。随着 Twitter 的发展,很明显需要一个标准的解决方案来提供可伸缩的基础设施、可重用的库和有效的监控。
架构
在一个较高的层次上,你可以将 ConfigBus 看作一个 Git 存储库,它的内容被推送到 Twitter 数据中心的所有机器上。配置更
改经过一系列步骤到达目的地:
1.开发人员向 Git 存储库提交更改。经过身份验证的应用程序也可以通过 ConfigBus 服务提交到存储库。
2.预接收钩子验证更改。如果验证通过,则在服务器上接受并提交推送。(我们将在“特点”部分更详细地讨论这种验证。)
3.一旦服务器上的提交过程完成,Git 接收后钩子就会使用提交信息(SHA、时间戳等)更新 ZooKeeper 中的特定节点。
接下来会触发ZooKeeper watches,引发下游过程的动作:
a. 在作为配置准备区的“ConfigStore”机器上,watch 事件会调用一个回调,从 Git 服务器获取最新提交。它还用当前的 SHA
更新 ZooKeeper 中的条目。
b. 在目标机器上,watch 事件触发镜像任务,该任务轮询 ZooKeeper,找出与最新提交具有相同 SHA 的 ConfigStore 机器。
一旦找到源机器,镜像任务将运行 rsync 把更改同步到本地机器上。
最后,使用这些配置文件的应用程序将看到文件系统上的更改(通过 ConfigBus 客户端库),并启动进程内重新加载。
最后,系统停止工作,以便把第 1 步中更改的文件同步到所有目标机器,并由依赖这些机器的所有客户端应用程序重新加
载。
特点
配置即代码
使用 Git 允许开发人员重用源存储库提供的许多相同的命令和工作流。Git 及其周边的生态系统主要提供了以下功能:
具有更改日志的源代码控制:能够检查过去的配置更改以查看更改了什么(以及由谁更改、何时更改或为什么更改)是非常有
价值的。Git 自然允许这样做。开发人员完全有信心,当前和过去的版本在版本控制中是安全的。
自动部署:ConfigBus 中的配置文件会自动复制到所有目标机器。目前,配置传播的平均延迟为 80-100 秒,而 p99 延迟大约
为 300 秒。
分析验证:ConfigBus 使用预接收钩子来运行验证程序,它们可以检查配置文件中的语法错误,进行模式验证,以及执行任何
类型的自定义验证。它针对 JSON 等流行配置格式为 Twitter 开发人员提供了开箱即用的语法验证。它还提供了指定模式和验
证兼容性的能力。用户还可以编写自定义验证,并在 Git 中添加和更新配置时执行这些验证。
代码审核:让配置更改通过代码评审有助于减少错误,并在将其投入生产环境之前发现问题。
ACL:我们在 Git 存储库中强制执行配置所有权,以确保配置文件只被应该管理它们的团队和应用程序修改。当推送一个更改
时,一个预接收钩子会验证是否允许执行该推送的用户对这些文件进行更改。
资源评论
weixin_38720009
- 粉丝: 4
- 资源: 866
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- QxOrm 是一个 C++ 库
- springboot智能排课系统 演示录像.mp4
- Springboot 癌症患者交流平台 演示录像.mp4
- springboot 普拉提会馆管理系统 演示录像.mp4
- springboot 兔宠管理系统 演示录像.mp4
- kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
- 巡线鹰Tovos DroneScan-轻便高效的无人机激光雷达巡检系统
- 数据库项目设计是软件开发中的核心部分,涉及从需求分析、数据库模式设计、关系建模到优化性能的整个过程
- 基于MSP430设计的12V和24V太阳能面板专用-20A太阳能MPPT充电控制器设计(原理图、PCB、GUI源码)
- 无人机系统在电力勘测与巡检的应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功