Cloud Native 7 min read

Choosing the Right Microservice Configuration Center: Spring Cloud Config, Nacos, or Apollo

This article explains what microservice configuration is, why centralized management is essential, and compares three popular configuration centers—Spring Cloud Config, Nacos, and Apollo—detailing their advantages, disadvantages, and suitable scenarios for cloud‑native architectures.

Architect Chen
Architect Chen
Architect Chen
Choosing the Right Microservice Configuration Center: Spring Cloud Config, Nacos, or Apollo

Microservice Configuration Overview

Microservice configuration refers to the centralized management and dynamic control of runtime parameters (such as service addresses, database connections, feature flags, etc.) for each service in a distributed system.

Why Centralized Configuration Is Required

Large numbers of services are deployed frequently and the topology changes dynamically.

Embedded or manual configuration cannot guarantee consistency, security, and operational efficiency.

Centralized management provides unified version control, environment isolation, audit trails, and rollback capability, reducing error rates and operational cost.

Dynamic push or pull of configuration avoids frequent service restarts, improving availability and response time.

Fine‑grained control (gray release, feature toggles, multi‑tenant scenarios) enables rapid business evolution while keeping risk under control.

Spring Cloud Config

Spring Cloud Config implements a configuration server that reads configuration files from a Git repository (or a file system). Clients obtain configuration via HTTP and can refresh at runtime using Spring Cloud Bus or the Actuator endpoint.

Typical setup steps:

Create a Git repository containing application.yml (or .properties) files for each service and profile.

Configure the Config Server with the repository URL, e.g.

spring.cloud.config.server.git.uri=https://github.com/yourorg/config-repo.git

.

Start the Config Server, e.g. java -jar spring-cloud-config-server.jar.

In a client application, set spring.cloud.config.uri=http://config-server:8888 and annotate beans that need runtime refresh with @RefreshScope.

Trigger a refresh manually via POST /actuator/refresh or automatically with Spring Cloud Bus.

Advantages

Version control and history tracking through Git.

Lightweight and integrates seamlessly with the Spring Cloud ecosystem.

Supports multiple environments and branches.

Disadvantages

Pull‑based model leads to relatively poor real‑time performance; refresh must be triggered.

No built‑in push mechanism for configuration changes.

Lacks native permission management and gray‑release capabilities.

Nacos Config

Nacos provides configuration registration, discovery, and management. Configurations are stored in a MySQL database, and the server pushes updates to registered clients, which apply changes through local cache and callbacks.

Typical usage steps:

Deploy a Nacos server (standalone or clustered for high availability).

Create a namespace and a data ID (configuration item) in the Nacos console.

In a Spring Cloud Alibaba client, configure spring.cloud.nacos.config.server-addr and spring.cloud.nacos.config.namespace.

Inject configuration values using @Value or @NacosConfigurationProperties.

When a configuration item is modified in the console, Nacos pushes the change; the client automatically refreshes its cache.

Advantages

High real‑time performance with push‑based updates.

Supports cluster deployment and high availability.

Deep integration with Spring Cloud Alibaba.

Provides both service registration and configuration management.

Disadvantages

Relies on an external MySQL database for storage.

Configuration version control is weaker than Git‑based approaches.

History management is less intuitive than Git commit history.

Apollo

Apollo is an enterprise‑grade configuration platform that offers built‑in gray release, rule‑based routing, namespace isolation, and fine‑grained permission control.

Typical deployment and usage steps:

Deploy Apollo Config Service and Apollo Portal (requires ZooKeeper/ETCD for coordination).

Create an application, environment, and one or more namespaces in the portal.

Add configuration items to a namespace and define release rules (by cluster, IP, or tag) for gray routing.

In a Spring Boot client, enable Apollo with apollo.bootstrap.enabled=true and set apollo.meta to the portal address.

Inject values using @Value or @ApolloConfig. Changes are pushed automatically and can be rolled back via the portal.

Advantages

Rich enterprise features, including gray release and permission isolation.

Configuration changes are traceable and support rollback.

High stability and security.

Disadvantages

Complex deployment with multiple components (Config Service, Portal, ZooKeeper/ETCD).

Higher operational and maintenance cost.

Steeper learning curve for new users.

cloud-nativemicroservicesNacosApolloSpring Cloud Config
Architect Chen
Written by

Architect Chen

Sharing over a decade of architecture experience from Baidu, Alibaba, and Tencent.

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.