配置中心-Apollo分布式部署指南

有问题可联系本人QQ:1016401546

参考官网链接: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

注意:我的笔记是个简洁版的安装方式,没有官方文档那么繁琐,旨在成功安装和运行使用。

一、准备工作

1、 运行时环境

机器:centos 7 两台

DEV环境:172.16.88.223 安装:apollo-admin 和 apollo-config

PRO环境:172.16.88.221 安装:apollo-admin 、apollo-config 和 apollo-portal

Java版本:1.8

我要部署的环境:开发环境(DEV)和生产环境(PRO)

Apollo目前支持以下环境:

  • DEV
    • 开发环境
  • FAT
    • 测试环境,相当于alpha环境(功能测试)
  • UAT
    • 集成环境,相当于beta环境(回归测试)
  • PRO
    • 生产环境

Portal部署在生产环境的机房,通过它来直接管理FAT、UAT、PRO等环境的配置

  • Meta Server、Config Service和Admin Service在每个环境都单独部署,使用独立的数据库
  • Meta Server、Config Service和Admin Service在生产环境部署在两个机房,实现双活
  • Meta Server和Config Service部署在同一个JVM进程内,Admin Service部署在同一台服务器的另一个JVM进程内

 

2、安装MySQL

2.1 我安装的是mysql 5.7 ,两台机器都要安装,因为不同的环境使用独立的MySQL。

参考MySQL安装连接:https://blog.csdn.net/MYF12/article/details/78110419

后者yum安装参考:https://www.cnblogs.com/wwjj4811/p/12793318.html

2.2 导入Apollo数据

二、部署步骤

下载Apollo 安装包:(可去我主页搜索,有该资源)

我是通过安装包直接解压安装的:

下载链接:https://github.com/ctripcorp/apollo/releases

mkdir /data/apollo -p
wget https://github.com/ctripcorp/apollo/releases/download/v1.7.1/apollo-adminservice-1.7.1-github.zip
wget https://github.com/ctripcorp/apollo/releases/download/v1.7.1/apollo-configservice-1.7.1-github.zip
wget https://github.com/ctripcorp/apollo/releases/download/v1.7.1/apollo-portal-1.7.1-github.zip
可能下载的很慢。

 

1、部署PRO环境

导入ApolloPortalDB数据

SQL查看链接:https://github.com/ctripcorp/apollo/blob/master/scripts/sql/apolloportaldb.sql(把SQL复制下来即可)

登录MySQL导入:source /tmp/apolloportaldb.sql(会自动创建数据库)

导入成功后,可以通过执行以下sql语句来验证:

select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;

  默认只有dev环境

Id

Key

Value

Comment

1

apollo.portal.envs

dev

可支持的环境列表

注:ApolloPortalDB只需要在生产环境部署一个即可

 

 

导入ApolloConfigDB数据

SQL查看链接:https://github.com/ctripcorp/apollo/blob/master/scripts/sql/apolloconfigdb.sql

登录MySQL导入:source /tmp/apolloconfigdb.sql(会自动创建数据库)

导入成功后,可以通过执行以下sql语句来验证:

select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit 1;

Id

Key

Value

Comment

1

eureka.service.url

http://127.0.0.1:8080/eureka/

Eureka服务Url

注:ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB

这里填入该环境的eureka服务地址,如我pro环境地址是172.16.88.221,那么我把`ApolloConfigDB`.`ServerConfig`的value修改成172.16.88.221,如果端口号改了也要一起改

update `ApolloConfigDB`.`ServerConfig` set `Value` = 'http://172.16.88.221:8080/eureka/' where `Key` = 'eureka.service.url';

安装apollo-configservice

cd /data/apollo 
mkdir apollo-config
mv apollo-configservice-1.7.1-github.zip  apollo-config
cd apollo-config
unizp apollo-configservice-1.7.1-github.zip
vim config/application-github.properties
# DataSource ,我用的是root,你可以创建一个其他用户,但前提有权限访问
# 记得添加&serverTimezone=GMT,否则启动报错
spring.datasource.url = jdbc:mysql://172.16.88.221:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=GMT
spring.datasource.username = root
spring.datasource.password = 123456
启动:./scripts/startup.sh
停止:./scripts/shutdown.sh
如果要修改其他端口可以,但是修改之后数据库的配配置也要修改:
vim ./scripts/startup.sh
SERVER_PORT=${SERVER_PORT:=8082}

安装apollo-adminservice

cd /data/apollo 
mkdir apollo-admin
mv pollo-adminservice-1.7.1-github.zip  apollo-admin
unizp pollo-adminservice-1.7.1-github.zip
vim config/application-github.properties 
# DataSource ,我用的是root,你可以创建一个其他用户,但前提有权限访问
spring.datasource.url = jdbc:mysql://172.16.88.221:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=GMT
spring.datasource.username = root
spring.datasource.password = 123456
启动:./scripts/startup.sh
停止:./scripts/shutdown.sh
如果要修改其他端口可以,但是修改之后数据库的配配置也要修改:
vim ./scripts/startup.sh
SERVER_PORT=${SERVER_PORT:=8090}

安装apollo-portal

 

portal相当于一个管理页面,就算重启也不会影响组件获取配置,因为组件获取配置链接的是对应环境的apollo configservice 端口获取的,所以portal只需要部署一个即可。portal部署到外网也可以,adminservice和configservice 一定要部署到内网。

cd /data/apollo 
mkdir apollo-portal
mv pollo-portal-1.7.1-github.zip  apollo-portal
unizp pollo-portal-1.7.1-github.zip
vim config/application-github.properties 
# DataSource ,我用的是root,你可以创建一个其他用户,但前提有权限访问
spring.datasource.url = jdbc:mysql://172.16.88.223:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=GMT
spring.datasource.username = root
spring.datasource.password = 123456
启动:./scripts/startup.sh
停止:./scripts/shutdown.sh
如果要修改其他端口可以,但是修改之后数据库的配配置也要修改:
vim ./scripts/startup.sh
SERVER_PORT=${SERVER_PORT:=8070}

全部启动之后,可以打开172.16.88.221:8070验证下是否正常登陆。

账号密码:apollo/admin

 

 

2、部署DEV环境

方法和安装PRO一样,但只需要安装apollo-configservice 和 apollo-adminservice,数据库改成本机的数据库。

安装完了之后启动 apollo config 和 apollo admin。

 

三、配置

需要修改的配置:

apollo.portal.envs --环境列表

apollo.portal.meta.servers  --环境地址

organizations --部门

登陆apollo portal页面

http://172.16.88.221:8070

配置中心-Apollo分布式部署指南_第1张图片

右上角:【管理员工具】--【系统参数】

 

输入:apollo.portal.envs ,点击查询

apollo.portal.envs 默认是只有dev,我们修改为DEV,PRO(大小写不敏感),然后点击【保存】,就会覆盖原来的配置。

上面说一分钟后自动生效,但是我的没有生效,是重启了portal才生效的。

配置中心-Apollo分布式部署指南_第2张图片

 

 

修改:apollo.portal.meta.servers 

配置中心-Apollo分布式部署指南_第3张图片

{
    "DEV":"http://172.16.88.223:8082",   因为我8080端口被占用了,所以改成了8082端口
    "PRO":"http://172.16.88.221:8082"
}

其他的配置参数可以参考官方文档的2.1.3.1节

特别需要注意这个文件:apollo-portal/config/apollo-env.properties

这个配置文件也是配置各环境的configservice地址的,但是 apollo.portal.meta.servers 优先级大于配置文件,也就是说如果apollo.portal.meta.servers 配置了会先使用apollo.portal.meta.servers 的。如果apollo.portal.meta.servers 没有则读取配置文件的

上面配置完,重启portal之后,在 【管理员工具】 -- 【系统信息】 可以看到所有环境连接情况。

配置中心-Apollo分布式部署指南_第4张图片

如果你在apollo.portal.envs配置了其他的环境这里也会显示出来,我只配置了DEV和PRO

 

修改:organizations 

配置中心-Apollo分布式部署指南_第5张图片

 

这个部门配置会出现在你新建项目的管理部门里面。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(apollo,apollo,配置中心,配置管理中心,携程)