学习
实践
活动
工具
TVP
写文章

Apollo分布式配置中心部署以及使用

一、简介

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

官方github:https://github.com/ctripcorp/apollo

作者对Apollo对介绍:https://github.com/ctripcorp/apollo/wiki/Apollo%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83%E4%BB%8B%E7%BB%8D

二、安装部署

基础设施

本次部署环境为DEV(开发环境)、FAT(测试环境)、UAT(预生产)、PRO(生产)

应用服务器:

数据库服务器:

配置

下载代码:

比较重要的几个项目:

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

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

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

apollo-client:Apollo提供的客户端程序,为应用提供配置获取、实时更新等功能

上图简要描述了配置发布的大致过程:

用户在Portal操作配置发布

Portal调用Admin Service的接口操作发布

Admin Service发布配置后,发送ReleaseMessage给各个Config Service

Config Service收到ReleaseMessage后,通知对应的客户端

数据库初始化:

下面的sql为大写格式,注意数据库的大小写敏感设置

ApolloPortalDB:执行

ApolloConfigDB:DEV FAT UAT PRO 环境执行

调整配置并打包:

在 项目中找到目录 的配置文件 或者

数据库配置

修改数据库配置,上面的是 配置,下面的是 配置:

apollo config db info 该数据库配置只需要配置一次,不同环境无需修改

apollo portal db info 该数据库依据不同环境配置对应的数据库连接,并且需要多次打

修改环境调用地址

修改数据库数据

在DEV FAT UAT PRO 对应的 数据库中,找到表 中的 配置项:

修改环境配置,在 数据库修改表 中的 :

具体 配置,可以查看官网:https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97

编译、打包

该脚本会依次打包 , , 和 。

由于 在每个环境都有部署,所以对不同环境的 和 需要使用不同的数据库连接信息打不同的包, 和 只需要打一次包即可

开始部署

部署程序到对应的服务器

部署apollo-configservice

将 目录下的 上传到服务器上,解压

修改 :

执行 即可

如需停止服务,执行

部署apollo-adminservice

将 目录下的 上传到服务器上,解压

修改 :

执行 即可

如需停止服务,执行

部署apollo-portal

将 目录下的 上传到服务器上,解压

修改 :

执行 即可

如需停止服务,执行

访问测试

上面部署完成,可以测试

访问不同环境的 ,查看服务注册情况是否正确:

如果可以看到:

两个服务都为UP,正常!

访问客户端:

登录,默认用户名密码为:

新建项目测试。

三、使用配置中心配置信息

maven引入上面步骤编译打包成功的 和 包:

创建app.properties

请确保classpath:/META-INF/app.properties文件存在,并且其中内容为自己的项目名称,而且要保持唯一:

环境变量配置

本地开发

如果是本地开发,可以在开发工具添加Environment:

线上环境配置方式:

使用Java启动参数添加

通过操作系统的System Environment

通过配置文件:

对于Mac/Linux,文件位置为/opt/settings/server.properties

对于Windows,文件位置为C:\opt\settings\server.properties

配置apollo-env.properties

在项目中引用 和 包,在 包中可以看到 配置文件,默认配置为打包前配置的信息:

如果需要修改或者覆盖的话,在项目的 从上面复制一个 文件,修改对应环境信息就可以了

启用配置

在启动类添加 注解即可:

测试

添加一个测试的类 ,当然配置中心要有下面配置的配置信息:

完成!

四、部署方案

这个图是计划部署的方案,并不是上面写的例子的方案

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180614A194Q700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券