- 该项目目前尚未完工,正在进行开发中
该项目是一个分布式配置管理中心,旨在集中管理应用在不同环境、不同集群的配置。一旦配置发生变更,即可实时推送至应用端,同时具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
服务端基于Spring Boot和Spring Cloud开发,可直接运行,无需额外安装Tomcat等应用容器。
我们的项目是以Apollo配置中心为借鉴参考进行设计的,实现了Apollo配置中心的核心功能,同时也融入了自身独特的功能和特色。
- 本项目仍处于开发阶段,暂无发行版
- 本项目仍处于开发阶段,暂无发行版
查看帮助
help
查看某个命令的帮助
help {命令}
以本人为管理员创建应用
app create {应用名}
进入app
app use {应用名}
进入默认namspace
namespace use appnamespace
添加一条配置
namespace add "time-out" 100
该项目支持集中管理不同环境、不同集群、不同命名空间的配置。
同一份代码在不同集群部署时,可以拥有不同的配置,例如ZooKeeper的地址等。
通过命名空间,支持多个不同应用共享相同配置,并允许应用对共享的配置进行覆盖。
用户修改并发布配置后,客户端能够实时(1秒内)接收到最新配置,并通知到应用程序。
所有配置发布均具有版本概念,可在不同版本间进行切换。
对于大范围的配置删除操作(如:直接删除整个应用),服务端将在垃圾桶中保留被删除内容,一段时间后再彻底删除。
支持配置的灰度发布,即仅对部分应用实例生效,观察一段时间后再推送至所有应用实例。
具备完善的权限管理机制,应用和配置管理分为编辑和发布环节,减少人为错误。 所有操作均有审计日志,便于问题追踪。
可轻松查看配置在哪些实例中使用。
提供Java原生客户端,便于应用集成,同时提供HTTP接口,非Java应用也可方便使用。
配置中心作为基础服务,对可用性要求极高,因此项目尽可能减少外部依赖。
目前仅依赖MySQL,部署非常简单,安装Java和MySQL后即可运行Apollo。
作为基础服务之一,配置中心需要具备较高的可靠性。在项目设计阶段,我们充分考虑了各种意外情况,并在多个方面进行了冗余设计,以确保即使在特殊情况下,配置服务仍然可靠可用。
场景 | 影响 | 降级 | 原因 |
---|---|---|---|
某台Config Service下线 | 无影响 | 不降级 | Config Service无状态,客户端重连其它Config Service |
所有Config Service下线 | 客户端无法读取最新配置 | 客户端重启时,可以读取本地缓存配置文件。如果是新扩容的机器,可以从其它机器上获取已缓存的配置文件 | |
某台Admin Service下线 | 无影响 | 不降级 | Admin Service无状态,管理客户端重连其它Admin Service |
所有Admin Service下线 | 客户端无影响,管理客户端无法更新配置 |