搭建apollo高可用分布式配置中心(自定义环境)
下载apollo源码包和jar包
https://github.com/ctripcorp/apollo/releases
这个是快速安装包 (单机环境)
https://github.com/ctripcorp/apollo/wiki/Quick-Start
需求:搭建apollo一共五个环境 三个自定义环境 分布式 高可用
分别是
DEV 开发环境
DAILY 测试环境
PRE 预发环境
BETA 灰度环境
PROD 生产环境
自定义环境列表可以参考这个 需要下载源码包改代码
需要先安装 idea和mvn然后配置仓库等
需要添加的代码有四处
1
2
3
4
按照上面参考改完后直接运行源码里的build.sh
打包好后找到源码包里的这三个文件
可以在这里改也可以传到服务器里改配置 看自己喜好
服务器环节
[root@localhost ~]# yum install glibc.i686
[root@localhost ~]# tar zxvf jdk-8u221-linux-i586.tar.gz
[root@localhost ~]# mv jdk1.8.0_221/ /usr/local/java
[root@localhost ~]# vi /etc/profile
JAVA_HOME=/usr/local/java/
JAVA_BIN=/usr/local/java/bin
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/sbin:/bin
CLASSPATH=.:/lib/dt.jar:/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
[root@localhost ~]# source /etc/profile
[root@localhost ~]# ln -s /usr/local/java/bin/* /usr/local/bin/
[root@localhost ~]# java –version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) Client VM (build 25.221-b11, mixed mode)
测试环境为了方便,使用yum安装数据库
[root@localhost ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
[root@localhost ~]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
[root@localhost ~]# yum -y install mysql-server
[root@localhost ~]# vi /etc/my.cnf
init_connect=‘SET collation_connection = utf8_unicode_ci‘
init_connect=‘SET NAMES utf8‘
character-set-server = utf8
collation-server = utf8_unicode_ci
skip-character-set-client-handshake
transaction-isolation = READ-COMMITTED
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# grep ‘temporary password‘ /var/log/mysqld.log
2019-07-05T02:13:24.902657Z 1 [Note] A temporary password is generated for root@localhost: /w6mAIS+SWp+ 最后面有一个随机密码
[root@localhost ~]# mysql -uroot –p
Enter password: 复制密码到这里
mysql> ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘pwd@123123A‘;
现在可以跑apollo了 首先修改sql文件然后导入
修改apolloportaldb.sql中的 ServerConfig
1 apollo.portal.envs dev,daily,pre,beta,pro 可支持的环境列表 0 default 2019-07-27 09:35:33 2019-07-27 09:37:01
2 organizations [{"orgId":"TEST1","orgName":"开发一组"},{"orgId":"TEST2","orgName":"开发二组"},{"orgId":"TEST3","orgName":"开发三组"},{"orgId":"TEST4","orgName":"测试组"},{"orgId":"TEST5","orgName":"前端组"},{"orgId":"TEST6","orgName":"后端组"},{"orgId":"TEST7","orgName":"运维组"}] 部门列表 0 default 2019-07-27 09:35:33 apollo 2019-07-27 12:12:16
如果一个服务器配置多个环境需要改apolloconfigdb.sql数据库表ServerConfig
1 eureka.service.url default http://localhost:8080/eureka/ Eureka服务Url,多个service以英文逗号分隔,修改ip和端口
建议使用Navicat Premium
进入数据库给root授权任何地方可以登陆
grant all on *.* to ‘root‘@‘%‘ identified by‘pwd@123123A‘;
flush privileges;
exit
管理端导入apolloportaldb
进入数据库输入命令 source apolloportaldb.sql;
其他环境导入apolloconfigdb.sql
进入数据库输入命令source apolloconfigdb.sql;
数据库配置完毕
导入apollo文件 到linux服务器
[root@yy ~]#mkdir /usr/local/Apollo
[root@yy ~]# cd /usr/local/apollo/
管理端使用工具导入apollo-portal-1.4.0-github下的文件
[root@yy apollo]# ls
apollo-portal-1.4.0.jar apollo-portal-1.4.0-sources.jar apollo-portal.conf config
scripts
然后修改配置文件
首先修改数据库连接文件
[root@yy apollo]# vi config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloportaldb?characterEncoding=utf8
#数据库连接地址端口等
spring.datasource.username = root
#数据库连接用户
spring.datasource.password = pwd@123123A
#数据库连接密码
:wq
再修改分布式配置文件
[root@yy apollo]# vi config/apollo-env.properties
local.meta=http://localhost:8080
dev.meta=http://fill-in-dev-meta-server:8080
daily.meta=http://192.168.163.201:8080
pre.meta=${pre_meta}
beta.meta=http://192.168.163.200:8080
fat.meta=http://fill-in-fat-meta-server:8080
uat.meta=http://fill-in-uat-meta-server:8080
lpt.meta=${lpt_meta}
pro.meta=http://fill-in-pro-meta-server:8080
管理端完成
配置各个环境的apollo
[root@localhost ~]# mkdir /usr/local/apollo
[root@localhost ~]# cd /usr/local/apollo/
[root@localhost apollo]# mkdir conf
[root@localhost apollo]# mkdir admin
[root@localhost apollo]# ls
admin conf
[root@localhost apollo]# cd conf/
导入文件夹apollo-configservice-1.4.0-github 下的文件
[root@localhost conf]# pwd
/usr/local/apollo/conf
[root@localhost conf]# ls
apollo-configservice-1.4.0.jar apollo-configservice-1.4.0-sources.jar apollo-configservice.conf config scripts
修改数据库连接文件
[root@localhost conf]# vi config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloconfigdb?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = pwd@123123A
:wq
[root@localhost apollo]# cd /usr/local/apollo/admin/
导入文件夹apollo-adminservice-1.4.0-github 下的文件
[root@localhost admin]# ls
apollo-adminservice-1.4.0.jar apollo-adminservice-1.4.0-sources.jar apollo-adminservice.conf config scripts
修改数据库连接文件
[root@localhost admin]# vi config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/apolloconfigdb?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = pwd@123123A
:wq
多台环境配置一样举例一个
开启服务
开启环境服务器中的config 后再开启admin 等待全部环境服务器都开启后,再开启管理端
[root@localhost ~]# chmod +x /usr/local/apollo/conf/scripts/startup.sh
[root@localhost ~]# /usr/local/apollo/conf/scripts/startup.sh start
Fri Jul 26 15:17:03 CST 2019 ==== Starting ====
Started [83655]
Waiting for server startup.....................
Fri Jul 26 15:18:55 CST 2019 Server started in 105 seconds!
启动成功后启动admin
[root@localhost ~]# chmod +x /usr/local/apollo/admin/scripts/startup.sh
[root@localhost ~]# /usr/local/apollo/admin/scripts/startup.sh start
Fri Jul 26 15:19:53 CST 2019 ==== Starting ====
Started [86239]
Waiting for server startup......................
Fri Jul 26 15:21:49 CST 2019 Server started in 110 seconds!
全部开启后就可以开启管理端了
[root@yy ~]# chmod +x /usr/local/apollo/scripts/startup.sh
[root@yy ~]# /usr/local/apollo/scripts/startup.sh start
Fri Jul 26 15:22:58 CST 2019 ==== Starting ====
Started [90851]
Waiting for server startup.............
Fri Jul 26 15:24:08 CST 2019 Server started in 65 seconds!
访问 http://ip:8070 控制页面
用户名 :Apollo
密码:admin
自定义环境列表生效
现在就可以配置nginx代理然后给个域名 然后给写备份脚本 然后投入使用
原文:https://www.cnblogs.com/linuxys/p/12909297.html