Apollo - A reliable configuration management system

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。

Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。

.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。

更多产品介绍参见Apollo配置中心介绍

本地快速部署请参见Quick Start

演示环境(Demo):

  • 106.54.227.205
  • 账号/密码:apollo/admin

如访问github速度缓慢,可以访问gitee镜像,不定期同步

Screenshots

Features

  • 统一管理不同环境、不同集群的配置

    • Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。
    • 同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等
    • 通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖
    • 配置界面支持多语言(中文,English)
  • 配置修改实时生效(热发布)

    • 用户在Apollo修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序。
  • 版本发布管理

    • 所有的配置发布都有版本概念,从而可以方便的支持配置的回滚。
  • 灰度发布

    • 支持配置的灰度发布,比如点了发布后,只对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例。
  • 权限管理、发布审核、操作审计

    • 应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。
    • 所有的操作都有审计日志,可以方便的追踪问题。
  • 客户端配置信息监控

    • 可以方便的看到配置在被哪些实例使用
  • 提供Java和.Net原生客户端

    • 提供了Java和.Net的原生客户端,方便应用集成
    • 支持Spring Placeholder,Annotation和Spring Boot的ConfigurationProperties,方便应用使用(需要Spring 3.1.1+)
    • 同时提供了Http接口,非Java和.Net应用也可以方便的使用
  • 提供开放平台API

    • Apollo自身提供了比较完善的统一配置管理界面,支持多环境、多数据中心配置管理、权限、流程治理等特性。
    • 不过Apollo出于通用性考虑,对配置的修改不会做过多限制,只要符合基本的格式就能够保存。
    • 在我们的调研中发现,对于有些使用方,它们的配置可能会有比较复杂的格式,如xml, json,需要对格式做校验。
    • 还有一些使用方如DAL,不仅有特定的格式,而且对输入的值也需要进行校验后方可保存,如检查数据库、用户名和密码是否匹配。
    • 对于这类应用,Apollo支持应用方通过开放接口在Apollo进行配置的修改和发布,并且具备完善的授权和权限控制
  • 部署简单

    • 配置中心作为基础服务,可用性要求非常高,这就要求Apollo对外部依赖尽可能地少
    • 目前唯一的外部依赖是MySQL,所以部署非常简单,只要安装好Java和MySQL就可以让Apollo跑起来
    • Apollo还提供了打包脚本,一键就可以生成所有需要的安装包,并且支持自定义运行时参数

Usage

  1. 应用接入指南
  2. Java客户端使用指南
  3. .Net客户端使用指南
  4. 其它语言客户端接入指南
  5. Apollo开放平台接入指南
  6. Apollo使用场景和示例代码
  7. Apollo实践案例

Design

  • Apollo配置中心设计
  • Apollo核心概念之“Namespace”
  • Apollo配置中心架构剖析
  • Apollo源码解析(据说Apollo非常适合作为初学者第一个通读源码学习的分布式中间件产品)

Development

  • Apollo开发指南
  • Code Styles
    • Eclipse Code Style
    • Intellij Code Style

Deployment

  • Quick Start
  • 分布式部署指南

Release Notes

  • 版本发布历史

FAQ

  • 常见问题回答
  • 部署&开发遇到的常见问题

Presentation

  • 携程开源配置中心Apollo的设计与实现

    • Slides
  • 配置中心,让微服务更『智能』
    • Slides

Publication

  • 开源配置中心Apollo的设计与实现
  • 配置中心,让微服务更『智能』

apollo github的说明介绍相关推荐

  1. Apollo架构体系、Apollo运行原理、Apollo配置中心简单介绍(一)

    笔者在工作中遇到如下问题,随着程序功能越多,配置文件不断增加,一些功能的开关.服务器地址.接口地址.不同环境的一些配置文件不同,这些在每次发布不同环境.更新项目时都比较繁琐,后来学习微服务时接触到了S ...

  2. Apollo进阶课程㊲丨Apollo自动驾驶架构介绍

    原文链接:进阶课程㊲丨Apollo自动驾驶架构介绍 自动驾驶硬件架构:一般采用激光雷达作为主要感知传感器,同时结合摄像头.GPS/IMU.毫米波雷达.超声波雷达等,以NVIDIA Drive PX2 ...

  3. 优秀的GitHub开源项目介绍

    AdminLTE介绍AdminLTE是一款建立在bootstrap和jquery之上的开源的模板主题工具,它提供了一系列响应的.可重复使用的组件,并内置了多个模板页面:同时自适应多种屏幕分辨率,兼容P ...

  4. Apollo配置中心命名空间介绍

    每一个命名空间都是一个配置文件 可以将一些配置拆分成多个配置,统一引用 比如一个双数据源的项目 主库配置可以放在 application 命名空间中 新增一个私有的数据库二的命名空间 示例 命名空间配 ...

  5. Apollo github - 百度阿波罗

    https://github.com/ApolloAuto/apollo L4级量产园区自动驾驶解决方案 http://apollo.auto/parksolution_cn.html 转载于:htt ...

  6. Github page + octopress介绍

    Github page: 静态页面,离线写blog,托管服务.像写代码一样写博客. octopress: 基于jeklly的优秀博客系统. 我的主页: http://whbzju.github.com ...

  7. Github Flavored Markdown介绍

    Github Flavored Markdown Github用的GFM,风格很漂亮,简洁美观大方. GFM对标准Markdown做了少了修改,例如如下的内容. 原文链接 和标准Markdown的不同 ...

  8. HanLp的应用 - 转自GitHub开源代码介绍

    HanLP是一系列模型与算法组成的NLP工具包,目标是普及自然语言处理在生产环境中的应用.HanLP具备功能完善.性能高效.架构清晰.语料时新.可自定义的特点.内部算法经过工业界和学术界考验,配套书籍 ...

  9. 论文阅读20220523_Baidu Apollo EM Planner

    0.摘要 主要工作:提出了一种分层的路径规划以及一种鲁棒的跟踪控制框架. 1.该系统的顶层是一个多车道策略,通过比较并行计算的车道级轨迹来处理车道变换场景. 2. 在车道级轨迹生成器中,它基于Fren ...

最新文章

  1. 浏览器缓存导致FLASH资源更新问题的解决方案
  2. sklearn中的RandomForestClassifier参数详解
  3. Nature:AI 引导人类直觉,帮助发现数学定理
  4. 未来趋势?通过无线技术管理汽车电池,可消除90%物理布线
  5. Linux C编程--进程介绍3--进程终止和等待
  6. 小程序 WXS响应事件(滚动菜单栏tab吸顶)
  7. 知识图谱入门知识(二)事件抽取(EE)详细介绍
  8. php 栈实现历史记录后退,栈:如何实现浏览器的前进和后退功能
  9. mac怎么配置php开发环境变量,Mac M1安装mnmp(Mac+Nginx+MySQL+PHP)开发环境
  10. HierarchicalDataTemplate中的ContextMenu的Command绑定
  11. 如何使div的浏览器窗口高度为100%
  12. 如何实现分布式锁?赶紧收藏备战金三银四!
  13. 用动态规划解决最长公共子序列
  14. STM32库函数 断言机制 宏定义assert_param(expr)和assert_failed的使用方法
  15. NB-IoT的优势是什么?
  16. linux 下多个图片合并,FFmpeg将多张图片合成视频
  17. UEditor .Net版本任意文件上传漏洞复现
  18. 为什么打印还要另存为_打印的时候为什么显示文件另存为
  19. 我的HIFI WAV 播放器设计之二电路图数字电路部分
  20. 1838.最高频元素的频数

热门文章

  1. C语言:逗号表达式(辨析)
  2. 带你快速理解Zookeeper
  3. 目标检测 --- Anchor的生成
  4. Navigation Controllers + UITabBarController
  5. 机器学习——关联规则
  6. Python数据可视化第 9 讲:matplotlib极坐标图绘制函数polar
  7. uniapp:在HBuilderX里使用夜神模拟器
  8. 停车场设计软件测试,停车场车位视频检测系统设计
  9. Java分别获取指定日期的年月日
  10. sprintf_s() 、sprintf()和printf()区别和用法