Choosing the Right Open‑Source Config Center: Spring Cloud Config vs Ctrip Apollo vs Disconf

Centralized configuration becomes essential as applications grow in complexity, prompting a detailed comparison of open‑source config centers—Spring Cloud Config, Ctrip Apollo, and Disconf—highlighting features, compatibility, usability, and ultimately recommending Apollo as the optimal solution for SpringBoot‑based microservices.

ITFLY8 Architecture Home
ITFLY8 Architecture Home
ITFLY8 Architecture Home
Choosing the Right Open‑Source Config Center: Spring Cloud Config vs Ctrip Apollo vs Disconf

Why Centralized Configuration is Needed

As applications grow, the number of configuration items (feature switches, parameters, server addresses) increases, and expectations rise for real‑time updates, gray‑release, environment/cluster segregation, and robust permission and audit mechanisms. Distributed development further amplifies configuration complexity, making a config center essential.

Do We Still Need a New Center When Zookeeper/etcd Exist?

Our previous music‑service project used etcd for service registration and some configuration, demonstrating the benefits of centralization. However, etcd lacks a convenient UI, permission and audit features, and is primarily a service registry rather than a dedicated configuration manager.

Open‑Source Configuration Centers

spring‑cloud/spring‑cloud‑config – native Spring integration.

Taobao Diamond – no longer maintained.

Disconf – Java‑based, initiated by Ant Financial, widely used.

Ctrip Apollo – open‑source config management with permission, workflow, and audit features.

Feature Comparison (selected)

Feature                Priority  Spring‑Cloud‑Config   Apollo          Disconf
Static config management   High    file‑based            supported       supported
Dynamic config management   High    supported            supported       supported
Unified management           High    none (needs Git)    supported       supported
Multi‑environment           Medium  none (needs Git)    supported       supported
Local cache                 High    none                supported       supported
Config lock                  Medium  supported           not supported  not supported
Config validation            Medium  none                none            none
Config effective time        -       restart or manual refresh   real‑time   real‑time
Config push updates          High    manual trigger      supported       supported
Config pull schedule          High    none                supported       event‑driven
User permission management   Medium  none (needs Git)    supported       supported
Authorization, audit, review  Medium  none (needs Git)    supported       none
Config version management    High    Git versioning      UI history & rollback   DB records (no query API)
Config compliance check      High    not supported       supported (needs improvement)   none
Instance config monitoring    High    requires spring‑admin  supported   supported (shows machines)
Gray release                 Medium  not supported       supported       partial update not supported
Alert notification           Medium  not supported       email alerts   email alerts
Dependency relationship      High    not supported       not supported   not supported

Technical Compatibility

Feature                Priority  Spring‑Cloud‑Config   Apollo          Disconf
SpringBoot support      High    native               supported       not related
SpringCloud support     High    native               supported       not related
Client support          Low     Java                 Java, .Net     Java
Intrusiveness           High    low                  low            low (annotations & XML)
Dependency component    High    Eureka               Eureka          Zookeeper

Usability and Availability

Feature                Priority  Spring‑Cloud‑Config   Apollo          Disconf
Single point of failure High   HA support           HA support      HA via Zookeeper
Multi‑DC deployment    High   supported            supported       supported
Config fetch performance High   unknown              unknown (claimed faster)  unknown
Config UI               Medium none (Git)          unified NG UI   unified UI

Final Decision

Considering environment segregation, comprehensive management (permissions, release audit, operation audit), seamless SpringBoot integration, real‑time hot‑publish, and version control, Ctrip Apollo is the preferred choice.

Supports multiple environments and clusters.

Rich management system with permission, release review, and audit.

SpringBoot‑friendly with low migration cost.

Real‑time configuration updates (hot publish).

Version release management.

Deployment Details

Management Web: http://config.***.com/

MetaServers:

Dev: config.devmeta.***.com

Test: config.testmeta.***.com

PRO: config.prometa.***.com

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

JavaMicroservicesConfiguration ManagementApolloSpring Cloud Configdisconf
ITFLY8 Architecture Home
Written by

ITFLY8 Architecture Home

ITFLY8 Architecture Home - focused on architecture knowledge sharing and exchange, covering project management and product design. Includes large-scale distributed website architecture (high performance, high availability, caching, message queues...), design patterns, architecture patterns, big data, project management (SCRUM, PMP, Prince2), product design, and more.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.