Apollo (Apollo) is a reliable distributed configuration management center, born in Ctrip framework R&D department, which can centralize and manage the configuration of different environments and clusters of applications, and can push to the application side in real time after configuration modification, and has standardized permissions, process governance and other features, suitable for microservice configuration management scenarios.
For more information, please refer to Apollo Configuration Center Introduction
It is a grouping of different instances of an application, for example, typically you can divide the application instances in server room A into one cluster and the application instances in server room B into another cluster according to the data center.
A grouping of different configurations under one application. Please refer to Apollo core concept "Namespace"
Please refer to Apollo user guide
Apollo is supported. Please refer to III. Cluster independent configuration instructions
in Apollo User Guide
Apollo is supported. Please refer to IV. Using the same configuration for multiple AppId
in Apollo User Guide.
Starting from version 1.1.0, apollo-portal adds support for view permissions, which can support configuring an environment to allow only project members to view the configuration of a private Namespace.
The project members here are :
The configuration is very simple, after logging in with the super administrator account, go to Administrator Tools - System Parameters
page to add or modify configView.memberOnly.envs
configuration items.
The configuration encryption can be found in the spring-boot-encrypt demo project
There are multiple meta servers can be achieved through nginx reverse proxy, by proxy multiple meta servers with one domain name ha.
The beauty of Spring Cloud Config is that its configuration is stored in Git, which naturally isolates configuration changes, permissions, versioning, etc. This design makes Spring Cloud Config simple to use overall, but it also brings some inconveniences.
Here's a quick summary.
Function Point | Apollo | Spring Cloud Config | Notes |
---|---|---|---|
Configuration interface | One interface to manage different environments, different clusters configuration | None, need to operate through git | |
Spring Cloud Config requires a Git webhook and an additional message queue to support realtime effect. | |||
Versioning | Release history and rollback buttons directly on the interface | None, requires git action | |
Grayscale releases | Support | Not support | |
Authorization, audit, auditing | Support directly on the interface, and support the separation of modify and release permissions | Need to set up through the git repository, and do not support the separation of modify and release permissions | |
Instance configuration monitoring | You can easily see which clients are currently using which configurations | Not supported | |
Configuration fetching performance | Fast, with database access and cache support | Slow, requiring clone repository from git, then read from filesystem | |
Net applications, provides API support for other language applications, and also supports Spring annotation to get configuration | Support for Spring applications, provides annotation to get configuration | Apollo is a little more widely available |
Since we are not experienced users of Disconf
, we can't give a subjective evaluation.
However, an enthusiastic user in the Apollo support group @Krast made an Open Source Configuration Center Comparison Matrix, which can be consulted.