Apollo配置中心-简单安装

Apollo配置中心介绍

随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……

对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……

在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求、Apollo配置中心应运而生。

Apollo配置中心特性

正是基于配置的特殊性,所以Apollo从设计之初就立志于成为一个有治理能力的配置管理平台,目前提供了以下的特性:

  1. 统一管理不同环境、不同集群的配置
    1. Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。
    2. 同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等
    3. 通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖
  2. 配置修改实时生效(热发布)
    1. 用户在Apollo修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序
  3. 版本发布管理
    1. 所有的配置发布都有版本概念,从而可以方便地支持配置的回滚
  4. 灰度发布
    1. 支持配置的灰度发布,比如点了发布后,只对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例
  5. 权限管理、发布审核、操作审计
    1. 应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。
    2. 所有的操作都有审计日志,可以方便的追踪问题
  6. 客户端配置信息监控
    1. 可以在界面上方便地看到配置在被哪些实例使用
  7. 提供Java和.Net原生客户端
    1. 提供了Java和.Net的原生客户端,方便应用集成
    2. 支持Spring Placeholder, Annotation和Spring Boot的ConfigurationProperties,方便应用使用(需要Spring 3.1.1+)
    3. 同时提供了Http接口,非Java和.Net应用也可以方便的使用
  8. 提供开放平台API
    1. Apollo自身提供了比较完善的统一配置管理界面,支持多环境、多数据中心配置管理、权限、流程治理等特性。
    2. 不过Apollo出于通用性考虑,对配置的修改不会做过多限制,只要符合基本的格式就能够保存。
    3. 在我们的调研中发现,对于有些使用方,它们的配置可能会有比较复杂的格式,而且对输入的值也需要进行校验后方可保存,如检查数据库、用户名和密码是否匹配。
    4. 对于这类应用,Apollo支持应用方通过开放接口在Apollo进行配置的修改和发布,并且具备完善的授权和权限控制
  9. 部署简单
    1. 配置中心作为基础服务,可用性要求非常高,这就要求Apollo对外部依赖尽可能地少
    2. 目前唯一的外部依赖是MySQL,所以部署非常简单,只要安装好Java和MySQL就可以让Apollo跑起来
    3. Apollo还提供了打包脚本,一键就可以生成所有需要的安装包,并且支持自定义运行时参数

第一步

Apollo是需要JDK的

  1. Apollo服务端的JDK至少是:JDK1.8
  2. Apollo客户端的JDK至少是:JDK1.7

Apollo支持的mysql,最低版本5.6

第二步

下载(我这边是用git下载的,所以需要安装git)

yum -y install git

git clone https://github.com/nobodyiam/apollo-build-scripts.git

Mysql配置

Apollo项目包中有提供给我们sql脚本,我们真的导入数据库就可以了

进入数据库

mysql -u root -p

创建二个数据库(数据库名要一致,如果不一致就要去配置文件修改数据库名)

create database ApolloPortalDB;

create database ApolloConfigDB;

导入数据库(数据库文件,在项目中的sql目录下)

cd apollo-build-scripts-master/sql/

mysql -u root -p ApolloPortalDB < apolloportaldb.sql

mysql -u root -p ApolloConfigDB < apolloconfigdb.sql

第三步

修改demo.sh配置文件

vim apollo-build-scripts-master/demo.sh

# apollo config db info
apollo_config_db_url=jdbc:mysql://172.30.30.1:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=root
apollo_config_db_password=123456

# apollo portal db info
apollo_portal_db_url=jdbc:mysql://172.30.30.1:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=root
apollo_portal_db_password=123456

第四步

启动文件,就是我们刚刚修改的demo.sh配置文件

./demo.sh start

启动的时候有比较慢

启动后,web界面的端口就是8070

推荐文档:https://github.com/ctripcorp/apollo/wiki/Quick-Start?tdsourcetag=s_pcqq_aiomsg


   转载规则


《Apollo配置中心-简单安装》 江松泉 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
自动部署发布脚本 自动部署发布脚本
这脚本被我写到多少文件中,分成几个脚本文件,相互关联,目前该脚本在生产环境中以开始使用,可以用于多个项目,是基于多节点的基础编写的。 还有一个密码文件,我就不发出来了,这个密码文件是sshpass命令使用的,也可以用密钥,但是我这边选择用了
2019-01-30
下一篇 
centos6.5下安装 mysql5.7 centos6.5下安装 mysql5.7
第一步官方下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 版本:mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz 下载:wget
2019-01-23
  目录