最近项目在拆分微服务后,各个服务的配置的管理,发现了很多麻烦,例如:配置散乱格式不标准;本地静态配置修改麻烦;配置缺乏安全审计和版本控制等。因此配置中心的搭建势在必行。

Apollo配置中心有三个核心的

 

经过技术选型后,角色采用携程框架部门研发的Apollo作为配置中心,以下是搭建过程。

 

一、获取安装包。https://github.com/ctripcorp/apollo/releases,然后下载apollo-adminservice,apollo-configservice,apollo-portal-service三个压缩包。

apollo配置 python客户端 apollo配置中心搭建_接口服务

     1.apollo-portal:提供Web界面供用户管理配置。

     2.apollo-configservice:提供配置获取接口,提供配置更新推送接口,接口服务对象为Apollo客户端。

     3.apollo-adminservice:提供配置管理接口,提供配置修改、发布等接口,接口服务对象为Portal,以及Eureka。

     4.此处应该了解,对于一套多环境的配置中心来说,apollo-portal服务是只有一个的,而其他每一个环境(DEV,FAT,PRD)都会有一对apollo-configservice和apollo-adminservice服务,以及该环境所对应的数据库,即下面说的apolloconfigdb.sql所创建的数据库。另外Apollo是分布式项目,所以自然也会有注册中心,注册中心的服务端在apollo-configservice中(下文  二.2  中会提到用处)。

二、创建数据库。

     1.https://github.com/nobodyiam/apollo-build-scripts下载代码,打开sql文件夹。

         apolloconfigdb.sql:用于存放配置信息,对应apollo-configservice服务。

         apolloportaldb.sql:用于存放Web端用户管理信息,对应apollo-adminservice服务。

     

apollo配置 python客户端 apollo配置中心搭建_接口服务_02

      2.在apolloconfigdb.sql库的ServiceConfig表中,名称为eureka.service.url的key,value要配置为当前Apollo环境的注册中心(此处并非项目的注册中心,如何配置为项目的注册中心暂不在本文中说明)。

apollo配置 python客户端 apollo配置中心搭建_数据库_03

      3.在apolloportaldb.sql库的ServiceConfig表中,名称为apollo.portal.envs的key,value要配置为预期打算建立的环境,例如想要本项目有开发环境(DEV)、测试环境(FAT)的配置中心,则在value中填写dev,fat。

      

apollo配置 python客户端 apollo配置中心搭建_接口服务_04

     4.注意: 二.3  相当于portal服务的数据库配置。如果要支持多环境,需要创建多个apolloconfigdb.sql的数据库,并且修改eureka.service.url 为对应环境config服务的ip和端口。

apollo配置 python客户端 apollo配置中心搭建_接口服务_05

三、修改apollo-portal、apollo-configservice、apollo-adminservice 服务源码中的配置文件。

1.apollo-adminservice

apollo配置 python客户端 apollo配置中心搭建_apollo配置 python客户端_06

apollo配置 python客户端 apollo配置中心搭建_apollo配置 python客户端_07

apollo配置 python客户端 apollo配置中心搭建_apollo配置 python客户端_08

     2.apollo-configservice

apollo配置 python客户端 apollo配置中心搭建_sql_09

apollo配置 python客户端 apollo配置中心搭建_接口服务_10

apollo配置 python客户端 apollo配置中心搭建_sql_11

    3.portal-service

apollo配置 python客户端 apollo配置中心搭建_接口服务_12

apollo配置 python客户端 apollo配置中心搭建_接口服务_13

apollo配置 python客户端 apollo配置中心搭建_数据库_14

apollo配置 python客户端 apollo配置中心搭建_apollo配置 python客户端_15

四、然后整理下各个服务的ip和端口,把项目发给运维的小伙伴,让他按照整理的去部署就好啦