MCPcopy
hub / github.com/apolloconfig/apollo

github.com/apolloconfig/apollo @v2.5.1 sqlite

repository ↗ · DeepWiki ↗ · release v2.5.1 ↗
5,588 symbols 21,815 edges 758 files 549 documented · 10%
README

apollo-logo

English | 中文

Apollo - A reliable configuration management system

Build Status GitHub Release Maven Central Repo codecov.io License Ask DeepWiki.com

Apollo is a reliable configuration management system. It can centrally manage the configurations of different applications and different clusters. It is suitable for microservice configuration management scenarios.

The server side is developed based on Spring Boot and Spring Cloud, which can simply run without the need to install additional application containers such as Tomcat.

The Java SDK does not rely on any framework and can run in all Java runtime environments. It also has good support for Spring/Spring Boot environments.

The .Net SDK does not rely on any framework and can run in all .Net runtime environments.

For more details of the product introduction, please refer Introduction to Apollo Configuration Center.

For local demo purpose, please refer Quick Start.

Demo Environment: - http://81.68.181.139 - User/Password: apollo/admin

Screenshots

Screenshot

Features

  • Unified management of the configurations of different environments and different clusters
  • Apollo provides a unified interface to centrally manage the configurations of different environments, different clusters, and different namespaces
  • The same codebase could have different configurations when deployed in different clusters
  • With the namespace concept, it is easy to support multiple applications to share the same configurations, while also allowing them to customize the configurations
  • Multiple languages is provided in user interface(currently Chinese and English)
  • Configuration changes takes effect in real time (hot release)
  • After the user modified the configuration and released it in Apollo, the sdk will receive the latest configurations in real time (1 second) and notify the application
  • Release version management
  • Every configuration releases are versioned, which is friendly to support configuration rollback
  • Grayscale release
  • Support grayscale configuration release, for example, after clicking release, it will only take effect for some application instances. After a period of observation, we could push the configurations to all application instances if there is no problem
  • Global Search Configuration Items
  • A fuzzy search of the key and value of a configuration item finds in which application, environment, cluster, namespace the configuration item with the corresponding value is used
  • It is easy for administrators and SRE roles to quickly and easily find and change the configuration values of resources by highlighting, paging and jumping through configurations
  • Authorization management, release approval and operation audit
  • Great authorization mechanism is designed for applications and configurations management, and the management of configurations is divided into two operations: editing and publishing, therefore greatly reducing human errors
  • All operations have audit logs for easy tracking of problems
  • Client side configuration information monitoring
  • It's very easy to see which instances are using the configurations and what versions they are using
  • Rich SDKs available
  • Provides native sdks of Java and .Net to facilitate application integration
  • Support Spring Placeholder, Annotation and Spring Boot ConfigurationProperties for easy application use (requires Spring 3.1.1+)
  • Http APIs are provided, so non-Java and .Net applications can integrate conveniently
  • Rich third party sdks are also available, e.g. Golang, Python, NodeJS, PHP, C, etc
  • Open platform API
  • Apollo itself provides a unified configuration management interface, which supports features such as multi-environment, multi-data center configuration management, permissions, and process governance
  • However, for the sake of versatility, Apollo will not put too many restrictions on the modification of the configuration, as long as it conforms to the basic format, it can be saved.
  • In our research, we found that for some users, their configurations may have more complicated formats, such as xml, json, and the format needs to be verified
  • There are also some users such as DAL, which not only have a specific format, but also need to verify the entered value before saving, such as checking whether the database, username and password match
  • For this type of application, Apollo allows the application to modify and release configurations through open APIs, which has great authorization and permission control mechanism built in
  • Simple deployment
  • As an infrastructure service, the configuration center has very high availability requirements, which forces Apollo to rely on external dependencies as little as possible
  • Currently, the only external dependency is MySQL, so the deployment is very simple. Apollo can run as long as Java and MySQL are installed
  • Apollo also provides a packaging script, which can generate all required installation packages with just one click, and supports customization of runtime parameters

Usage

SDK

Design

Development

Deployment

Release Notes

FAQ

Presentation

Publication

Community

License

The project is licensed under the Apache 2 license.

Known Users

Sorted by registration order,users are welcome to register in https://github.com/apolloconfig/apollo/issues/451 (reference purpose only for the community)

携程 青石证券 沙绿 航旅纵横 58转转
蜂助手 海南航空 CVTE 明博教育 麻袋理财
美行科技 首展科技 易微行 人才加 凯京集团
乐刻运动 大疆 快看漫画 我来贷 虚实软件
网易严选 视觉中国 资产360 亿咖通 5173
沪江 网易云基础服务 现金巴士 锤子科技

Extension points exported contracts — how you extend this code

DatabaseDiscoveryClient (Interface)
@see org.springframework.cloud.client.discovery.DiscoveryClient [6 implementers]
apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/registry/DatabaseDiscoveryClient.java
ConsumerRepository (Interface)
@author Jason Song(song_s@ctrip.com) [7 implementers]
apollo-portal/src/main/java/com/ctrip/framework/apollo/openapi/repository/ConsumerRepository.java
DiscoveryService (Interface)
(no doc) [10 implementers]
apollo-configservice/src/main/java/com/ctrip/framework/apollo/metaservice/service/DiscoveryService.java
ApolloAuditOperatorSupplier (Interface)
(no doc) [9 implementers]
apollo-audit/apollo-audit-impl/src/main/java/com/ctrip/framework/apollo/audit/spi/ApolloAuditOperatorSupplier.java
ApolloAuditLogQueryApi (Interface)
Mainly used to query AuditLogs and DataInfluences. @author luke0125 @since 2.2.0 [2 implementers]
apollo-audit/apollo-audit-api/src/main/java/com/ctrip/framework/apollo/audit/api/ApolloAuditLogQueryApi.java
ReleaseOperationContext (Interface)
@author Jason Song(song_s@ctrip.com)
apollo-common/src/main/java/com/ctrip/framework/apollo/common/constants/ReleaseOperationContext.java
ReleaseMessageListener (Interface)
@author Jason Song(song_s@ctrip.com) [12 implementers]
apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/message/ReleaseMessageListener.java
UserService (Interface)
@author Jason Song(song_s@ctrip.com) [7 implementers]
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/UserService.java

Core symbols most depended-on inside this repo

size
called by 348
apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/wrapper/CaseInsensitiveMultimapWrapper.java
get
called by 323
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/controller/ReleaseController.java
get
called by 269
apollo-configservice/src/main/java/com/ctrip/framework/apollo/configservice/wrapper/CaseInsensitiveMapWrapper.java
isEmpty
called by 260
apollo-common/src/main/java/com/ctrip/framework/apollo/common/dto/ItemChangeSets.java
valueOf
called by 157
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/environment/Env.java
error
called by 155
apollo-common/src/main/java/com/ctrip/framework/apollo/common/http/RichResponseEntity.java
put
called by 142
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/component/RetryableRestTemplate.java
resolve
called by 136
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/component/txtresolver/ConfigTextResolver.java

Shape

Method 4,401
Class 655
Function 452
Interface 76
Enum 4

Languages

Java92%
TypeScript8%

Modules by API surface

apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/api/AdminServiceAPI.java81 symbols
apollo-portal/src/main/resources/static/scripts/directive/namespace-panel-directive.js62 symbols
e2e/portal-e2e/tests/helpers/portal-helpers.js56 symbols
apollo-biz/src/main/java/com/ctrip/framework/apollo/biz/config/BizConfig.java44 symbols
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/configuration/AuthConfiguration.java41 symbols
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/component/config/PortalConfig.java40 symbols
apollo-portal/src/main/java/com/ctrip/framework/apollo/openapi/util/OpenApiModelConverters.java37 symbols
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/listener/ConfigPublishEvent.java35 symbols
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/entity/bo/ReleaseHistoryBO.java35 symbols
apollo-portal/src/test/java/com/ctrip/framework/apollo/portal/component/AbstractPermissionValidatorTest.java32 symbols
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/service/ConfigsImportService.java31 symbols
apollo-audit/apollo-audit-impl/src/main/java/com/ctrip/framework/apollo/audit/entity/ApolloAuditLog.java30 symbols

Dependencies from manifests, versioned

ch.qos.logback:logback-classic1.3.12 · 1×
com.alibaba.boot:nacos-discovery-spring-boot-starter
com.alibaba.nacos:nacos-api
com.alibaba:fastjson
com.ctrip.framework.apollo:apollo-adminservice
com.ctrip.framework.apollo:apollo-audit-annotation
com.ctrip.framework.apollo:apollo-audit-api
com.ctrip.framework.apollo:apollo-audit-impl
com.ctrip.framework.apollo:apollo-audit-spring-boot-starter
com.ctrip.framework.apollo:apollo-biz
com.ctrip.framework.apollo:apollo-buildtools
com.ctrip.framework.apollo:apollo-common

Datastores touched

(mysql)Database · 1 repos
ApolloConfigDBDatabase · 1 repos
ApolloPortalDBDatabase · 1 repos
somedbDatabase · 1 repos

For agents

$ claude mcp add apollo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact