携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
环境准备:centos ==> 7+,mysql ==> 5.7+,java ==> 1.8+
环境搭建:
yum -y install wget //下载安装包需要的命令 yum -y install java //java环境 yum -y install lrzsz //上传下载功能 yum -y install unzip zip //压缩和解压zip所需的组件
一、MySQL安装:
安装步骤
1、检测下系统有没有自带的mysql:
yum list installed | grep mysql
如果已经有的话执行命令卸载已经安装的mysql
yum -y remove mysql-libs.x86_64
2、先到mysql官网下载5.7的安装包,download-yum选择Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package , 该文件只是将mysql添加到yum库中,现在从官网下载默认的安装版本是8.0,需要禁用到8.0选择5.7
wget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
如果没有wget命令可以通过如下命令安装
yum install wget -y
3、添加选择yum源:
yum localinstall mysql57-community-release-el7-7.noarch.rpm
#查看可用和默认的yum源,这里默认的就是5.7
yum repolist all | grep mysql
4、安装mysql:
yum install mysql-community-server
5、启动mysql:
#启动
service mysqld start
#
查看安装版本
mysqladmin --version
#
查看状态
service mysqld status
6、查看默认密码
grep -n password /var/log/mysqld.log
7、修改初始密码,允许远程访问
#本地连接数据库,输入刚刚获取的密码 mysql -u root -p #修改默认密码,默认密码后续操作会报错 SET PASSWORD = PASSWORD('Mysql@123456'); #选择mysql库 use mysql; #更新权限 update user set Host='%' where User='root'; 生效: FLUSH PRIVILEGES; vim etc/my.cnf 添加 character-set_server=utf8 否则会有乱码 8、配置防火墙打开3306端口 #查看3306端口是否开启 firewall-cmd --permanent --query-port=3306/tcp #允许外部访问3306端口(可设置固定IP或IP段访问某一特定端口) firewall-cmd --zone=public --add-port=3306/tcp --permanent #删除3306端口 firewall-cmd --zone=public --remove-port=3306/tcp --permanent #配置生效 systemctl restart firewalld.service #查看防火墙状态 firewall-cmd --state #启动firewall systemctl start firewalld.service #置开机自启: systemctl enable firewalld.service # 重启防火墙: systemctl restart firewalld.service 查看防火墙设置开机自启是否成功: systemctl is-enabled firewalld.service;echo $? #查看已开启的firewall端口: netstat -ntlp 或:firewall-cmd --list-ports
下载程序包地址:
源代码地址:https://github.com/ctripcorp/apollo/ 已编译完成程序包:https://github.com/ctripcorp/apollo/releases config数据库和portal数据库SQL地址:https://github.com/ctripcorp/apollo/tree/master/scripts/sql
本次使用已编译完成的程序包
wget https://github.com/ctripcorp/apollo/releases/download/v1.9.0/apollo-adminservice-1.9.0-github.zip wget https://github.com/ctripcorp/apollo/releases/download/v1.9.0/apollo-configservice-1.9.0-github.zip wget https://github.com/ctripcorp/apollo/releases/download/v1.9.0/apollo-portal-1.9.0-github.zip
若下载速度较慢,可修改系统host文件:140.82.114.4 github.com 199.232.5.194 github.global.ssl.fastly.net
二、程序接口名称及功能说明
名称
|
功能说明
|
接口服务对象
|
Portal
|
提供Web界面供用户管理配置
|
配置管理员
|
Admin Service
|
提供配置管理接口
|
Portal
|
Config Service
|
提供配置获取接口
|
Apollo客户端程序
|
Eureka
|
Config Service和Admin Service会向Eureka注册服务,并保持心跳
|
Config和Admin
|
Meta Server
|
Meta Server从Eureka获取Config Service和Admin Service的服务信息
|
Portal和Client
|
Meta Server和Config Service是在一个JVM进程中Eureka和Config Service是在一个JVM进程中
三、部署分布说明
- Portal单独使用 ApolloPortalDB 库,可以独立部署
- Config Service和Admin Service共用 ApolloConfigDB 库,建议部署至同一台服务器。
- Portal部署在生产环境的机房,通过它来直接管理FAT、UAT、PRO等环境的配置
- Config Service和Admin Service在每个环境都独立部署,使用独立的数据库(提供给相对应环境的客户端程序调用配置接口)
四、默认支持环境说明
名称
|
说明
|
DEV
|
开发环境
|
FAT
|
测试环境,相当于alpha环境(功能测试)
|
UAT
|
集成环境,相当于beta环境(回归测试)
|
PRO
|
生产环境
|
五、安装Config Service和Admin Service
- 导入数据库
mysql -uroot -p -e 'CREATE DATABASE IF NOT EXISTS ApolloConfigDB DEFAULT CHARACTER SET = utf8mb4' mysql -uroot -p ApolloConfigDB < ApolloConfigDB.sql
- 安装程序
mkdir -p /wwwroot/{apollo-config,apollo-admin} unzip apollo-adminservice-1.9.0-github.zip -d /wwwroot/apollo-admin/ unzip apollo-configservice-1.9.0-github.zip -d /wwwroot/apollo-config/
- 修改配置文件
vim /wwwroot/apollo-config/config/application-github.properties ######修改config server数据库地址以及用户名密码 spring.datasource.url = jdbc:mysql://10.2.1.241:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false spring.datasource.username = root spring.datasource.password = Mysql@123456 vim /wwwroot/apollo-admin/config/application-github.properties ######修改admin server数据库地址以及用户名密码 spring.datasource.url = jdbc:mysql://10.2.1.241:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false spring.datasource.username = root spring.datasource.password = Mysql@123456
- 启动程序
/wwwroot/apollo-config/scripts/startup.sh /wwwroot/apollo-admin/scripts/startup.sh chmod 777 start.sh chmod 777 shutdown.sh
- 开启防火墙
firewall-cmd --permanent --zone=public --add-port=8080/tcp firewall-cmd --permanent --zone=public --add-port=8090/tcp firewall-cmd --permanent --zone=public --add-port=8070/tcp
- 检查启动情况
- 打开网页 http://10.2.1.241:8080,查看是否有APOLLO-CONFIGSERVICE以及APOLLO-ADMINSERVICE成功注册
- 使用命令curl -X GET "http://10.2.1.241:8080/eureka/apps"检查已注册服务
六、同一套环境中部署Config Service和Admin Service集群
- 修改数据库配置文件
###修改 `ApolloConfigDB`.`ServerConfig`表中 `Value`选项 ###将原 http://localhost:8080/eureka/ 修改为内网IP,(Eureka服务Url,多个service以英文逗号分隔) ###例如: UPDATE `ApolloConfigDB`.`ServerConfig` SET `Value` = 'http://10.2.1.241:8080/eureka/,http://10.2.1.242:8080/eureka/' WHERE `Id` =
- 部署并启动
- 在10.2.1.241以及10.2.1.242服务器上部署config及admin服务
- 启动config及admin服务
- 检查启动情况
- 打开网页http://10.2.1.241:8080以及http://10.2.1.242:8080,两台程序都服务注册成功即可。
- 使用命令 curl -X GET "http://10.2.1.241:8080/eureka/apps"检查已注册服务.
七、安装配置portal
- 导入数据库
mysql -uroot -p -e 'CREATE DATABASE IF NOT EXISTS ApolloPortalDB DEFAULT CHARACTER SET = utf8mb4' mysql -uroot -p ApolloPortalDB < ApolloPortalDB.sql
- 安装程序
mkdir -p /wwwroot/apollo-portal unzip apollo-portal-1.9.0-github.zip -d /wwwroot/apollo-portal/
- 修改配置文件
- 修改数据库配置文件
vim /wwwroot/apollo-portal/config/application-github.properties ######修改portal数据库地址以及用户名密码 spring.datasource.url = jdbc:mysql://10.2.1.241:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false spring.datasource.username = root spring.datasource.password = Mysql@123456
修改访问环境配置文件
vim /wwwroot/apollo-portal/config/apollo-env.properties ######修改各环境的eureka访问地址,仅添加需要的环境,如果eureka配置集群模式,填入地址,使用逗号隔开。(更建议使用域名+负载均衡) dev.meta=http://10.2.1.241:8080,http://10.2.1.242:8080
修改数据库配置
配置统一存储在 ApolloPortalDB.ServerConfig 表中
###允许支持多环境 `apollo.portal.envs`键值中,如需管理多个环境的话,使用逗号隔开 例如 "DEV,FAT,UAT,PRO" ###修改部门列表信息 `organizations`键值中,按照样例修改可选部门信息 ###超级管理官 `superAdmin`键值中,拥有超级管理员权限用户名,如需添加多个,用逗号隔开
- 启动程序
/wwwroot/apollo-portal/scripts/startup.sh chmod 777 start.sh chmod 777 shutdown.sh
- 增加配置请查看官方git说明书