携程Apollo分布式配置中心搭建(一)

什么是分布式配置中心

项目中配置文件比较繁杂,而且不同环境的不同配置修改相对频繁,每次发布都需要对应修改配置,如果配置出现错误,需要重新打包发布,时间成本较高,因此需要做统一的分布式注册中心,能做到自动更新配置文件信息,解决以上问题。

常用分布式配置中心框架

注册中心

配置存储

 

时效性

数据模型

维护性

优点

缺点

Disconf

Zookpeer

实时推送

支持传统的配置文件模式,亦支持KV结构数据

 

提供界面操作

 

基于分布式的Zookeeper来实时推送稳定性、实效性、易用性上均优于其他

源码较多,阅读和使用起来相对较复杂

zookpeer

zookpeer

实时推送

支持传统的配置文件模式,亦支持KV结构数

 

命令操作

实时推送稳定性、实效性

开发量大

 

 

diamond

mysql

每隔15s拉一次全量数据

只支持KV结构的数据

提供界面操

简单、可靠、易用

数据模型不支持文件,使用不方便

 

Spring Cloud Config

git

人工批量刷新

文件模式

 

git操作

       

简单、可靠、易用

需要依赖GIT,并且更新GIT

 

 

分布式配置中心 解决分布式配置文件管理

Apollo阿波罗简介

 

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

Apollo阿波罗特点

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

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

 

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

配置修改实时生效(热发布)

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

版本发布管理

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

灰度发布

支持配置的灰度发布,比如点了发布后,只对部分应用实例生效,等观察一段时间没问题后再推给所有应用实例。

权限管理、发布审核、操作审计

应用和配置的管理都有完善的权限管理机制,对配置的管理还分为了编辑和发布两个环节,从而减少人为的错误。

所有的操作都有审计日志,可以方便的追踪问题。

同时提供了Http接口,非Java和.Net应用也可以方便的使用

部署简单

配置中心作为基础服务,可用性要求非常高,这就要求Apollo对外部依赖尽可能地少

目前唯一的外部依赖是MySQL,所以部署非常简单,只要安装好Java和MySQL就可以让Apollo跑起来

Apollo还提供了打包脚本,一键就可以生成所有需要的安装包,并且支持自定义运行时参数

 

搭建Apollo配置中心

 下载aploll配置中心 https://github.com/nobodyiam/apollo-build-scripts

 

配置数据库参数配置

创建数据库

 

Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。

 

配置数据库连接信息

Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑demo.sh,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息。最好在上传服务器之前修改demo.sh文件:

注意:填入的用户需要具备对ApolloPortalDB和ApolloConfigDB数据的读写权限,最好直接使用root用户

在Linux服务器安装JDK8 以及MySQL5.7以上版本,也可以将MySQL安装在其他位置只要在demo.sh修改MySQL文件的路径即可,如下:

步骤1中修改相应的MySQL相应的地址、用户、密码

步骤2中的localhost修改为Apollo所部署的服务器IP,Apollo只能部署在Linux环境

启动Apollo配置中心

确保端口未被占用

Quick Start脚本会在本地启动3个服务,分别使用8070, 8080, 8090端口,请确保这3个端口当前没有被使用。

例如,在Linux/Mac下,可以通过如下命令检查:

 

执行启动脚本

./demo.sh start

当提示没有权限时 使用如下命令

chmod 777  demo.sh 

然后继续执行启动脚本

当看到如下输出后,就说明启动成功了!

使用Apollo配置中心

访问网址:打开http://localhost:8070

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章