Apollo安装配置
Apollo安装配置
1.Apollo简介
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。 Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。 .Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。 详情参考https://github.com/ctripcorp/apollo 根据官方描述apollo可以用在:开发环境(dev)、生产环境(pro)、以及测试和集成环境(fat和uat)
在部署方式上:
其实这些环境在部署方面都是一样的,都分别部署了离线包中的apollo-adminservice和apollo-configservice然后再找一台服务器部署apollo-portal来管理这些环境同时根据官方描述同一个环境(例如PRO)可以进行高可用部署,也就是在多个服务器上部署多个副本
2.环境准备
本次部署的架构
为了适应未来项目架构,我们需要部署两个Apollo配置中心,其中Apollo1提供读写服务,Apollo2仅提供读服务;通过Mysql的主从模式,中心2的Mysql会一直同步中心1的Mysql数据,作为中心1的备份
部署规划如下:
-
server1 apollo1 + mysql主
-
server2 apollo2 + mysql从
3.开始部署
3.1 jdk 1.8离线部署
查询本服务器预装的openjdk版本
rpm -qa |grep jdk
卸载openjdk
rpm -e --nodeps java-11-openjdk-11.0.ea.28-7.el7.x86_64
rpm -e --nodeps java-11-openjdk-headless-11.0.ea.28-7.el7.x86_64
查看java版本报错,已经卸载成功
java -version
下载jdk-8u161-linux-x64.tar.gz,放到/java目录下(如果没有请新建)
解压缩jdk-8u161-linux-x64.tar.gz
cd /java
tar -zxvf jdk-8u161-linux-x64.tar.gz
编辑/etc/profile
vim /etc/profile
JAVA_HOME=/java/jdk1.8.0_161
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
重新加载环境变量
source /etc/profile
java -version
3.2 jdk 1.8在线部署
查看yum库中jdk的版本,选择java-1.8.0安装
yum search java|grep jdk
yum install java-1.8.0-openjdk* -y
配置环境变量
vi /etc/profile
# set java environment
# 根据自己的路径设置(带bin目录的)
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
# 环境变量生效
source /etc/profile
java -version
3.3 使用apollo用户创建数据库
`#注意:由于架构图中的两个Mysql已经设置为主从模式,下面数据库操作仅在主数据库上进行,从数据库会自动同步
下载数据库sql文件压缩包Apollo_db_sql.zip,并解压
执行2个.sql文件
给apollo用户授权ApolloConfigDB、ApolloPortalDB两个库的使用权限`
CREATE USER 'apollo'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'Apollo@147258';
# 给apollo用户授权ApolloConfigDB、ApolloPortalDB两个库的使用权限
use ApolloConfigDB;
grant ALL PRIVILEGES on ApolloConfigDB.* to 'apollo';
FLUSH PRIVILEGES;
use ApolloPortalDB;
grant ALL PRIVILEGES on ApolloPortalDB.* to 'apollo';
FLUSH PRIVILEGES;
3.4 配置Apollo
解压三个zip文件到/data/apollo
unzip apollo-adminservice-1.6.2-github.zip -d /data/apollo/apollo-adminservice
unzip apollo-configservice-1.6.2-github.zip -d /data/apollo/apollo-configservice
unzip apollo-portal-1.6.2-github.zip -d /data/apollo/apollo-portal
3.4.1 部署adminservice
修改application-github.properties中的mysql信息后启动
vi apollo-adminservice/config/application-github.properties
spring.datasource.url = jdbc:mysql://192.168.150.11:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = apollo
spring.datasource.password = Apollo@147258
在apollo-adminservice/scripts中执行starup.sh启动服务
cd /data/apollo/apollo-adminservice/scripts
./startup.sh
更改日志文件位置(可不更改)
vi /data/apollo/apollo-adminservice/apollo-adminservice.conf
MODE=service
PID_FOLDER=.
LOG_FOLDER=/data/apollo/logs/100003172/
3.4.2 部署configservice
修改application-github.properties中的mysql信息后启动
vi /data/apollo/apollo-configservice/config/application-github.properties
spring.datasource.url = jdbc:mysql://192.168.150.11:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = apollo
spring.datasource.password = Apollo@147258
在apollo-configservice/scripts中执行starup.sh启动服务
cd /data/apollo/apollo-configservice/scripts
./startup.sh
更改日志文件位置(可不更改)
vi /data/apollo/apollo-configservice/apollo-configservice.conf
MODE=service
PID_FOLDER=.
LOG_FOLDER=/data/apollo/logs/100003171/
3.4.3 部署portal
修改apollo-env.properties更改环境信息
vi /data/apollo/apollo-portal/config/apollo-env.properties
#local.meta=http://localhost:8080
dev.meta=http://192.168.150.11: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
修改application-github.properties中的mysql信息后启动
DataSource
spring.datasource.url = jdbc:mysql://192.168.150.11:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = apollo
spring.datasource.password = Apollo@147258
在apollo-portal/scripts中执行starup.sh启动服务
cd /data/apollo/apollo-portal/scripts
./startup.sh
更改日志文件位置(可不更改)
vi /data/apollo/apollo-portal/apollo-configservice.conf
MODE=service
PID_FOLDER=.
LOG_FOLDER=/data/apollo/logs/100003173/
4. 编辑Apollo服务并开机自启
4.1 编辑apollo-config.service
cat >/usr/lib/systemd/system/apollo-config.service <<EOF
[Unit]
Description=Apollo Service
After=network.target
[Service]
Type=simple
Environment=JAVA_HOME=/data/java/jdk1.8.0_161
PIDFile=/data/apollo/apollo-configservice/apollo-configservice_dataapolloapollo-configservice.pid
ExecStart=/data/apollo/apollo-configservice/scripts/startup.sh
ExecStop=/data/apollo/apollo-configservice/scripts/shutdown.sh
Restart=no
[Install]
WantedBy=multi-user.target
EOF
4.2 编辑apollo-admin.service
cat >/usr/lib/systemd/system/apollo-admin.service <<EOF
[Unit]
Description=Apollo Service
After=network.target
[Service]
Type=simple
Environment=JAVA_HOME=/data/java/jdk1.8.0_161
PIDFile=/data/apollo/apollo-adminservice/apollo-adminservice_dataapolloapollo-adminservice.pid
ExecStart=/data/apollo/apollo-adminservice/scripts/startup.sh
ExecStop=/data/apollo/apollo-adminservice/scripts/shutdown.sh
Restart=no
[Install]
WantedBy=multi-user.target
EOF
4.3 编辑apollo-portal.service
cat >/usr/lib/systemd/system/apollo-portal.service <<EOF
[Unit]
Description=Apollo Service
After=network.target
[Service]
Type=simple
Environment=JAVA_HOME=/data/java/jdk1.8.0_161
PIDFile=/data/apollo/apollo-portal/apollo-portal_dataapolloapollo-portal.pid
ExecStart=/data/apollo/apollo-portal/scripts/startup.sh
ExecStop=/data/apollo/apollo-portal/scripts/shutdown.sh
Restart=no
[Install]
WantedBy=multi-user.target
EOF
4.4 设置开机自启
# 启动
systemctl start apollo-config.service
systemctl start apollo-admin.service
systemctl start apollo-portal.service
# 停止
systemctl stop apollo-config.service
systemctl stop apollo-admin.service
systemctl stop apollo-portal.service
# 开机自启
systemctl enable apollo-config.service
systemctl enable apollo-admin.service
systemctl enable apollo-portal.service
5. 验证
打开浏览器,输入前台界面的登陆地址http://192.168.6.60:8070,注意前台登陆的端口默认是8070
默认账号apollo 密码 admin
可以尝试创建一个项目
与USE_START_DAEMON相关的错误在apollo-adminservice.conf开头加上一行USE_START_DAEMON=false就好了