apollo单机安装部署

一 简介

1 Apollo组件简介

  • Apollo Config Service 是一个分布式的配置中心,主要负责应用的配置信息存储、推送和管理。Config Service 支持多种存储方式,例如本地文件系统、Git 存储和数据库存储等,同时也提供基于轮询和通知两种方式的配置信息推送机制。配置中心的目的是让一组应用共享配置信息,并且应用可以动态读取存储在配置中心的配置信息。

  • Apollo Admin Service 是一个管理后台服务,主要提供给管理人员使用,用于管理所有的 Apollo 配置。Admin Service 主要包含两个功能:配置项的添加、修改、删除等管理功能、以及对环境、集群和命名空间等对象进行管理的功能。Admin Service 还提供了配置的发布和回滚功能,以及多种安全认证和授权方式。

  • Apollo Portal 是一个基于 Web 的管理界面,在客户端上展示配置项的值、历史,同时支持修改和发布。Portal 通过可视化的方式展示配置信息,让用户更加直观地了解系统的配置情况,同时提供了一些实用的功能,例如基于角色的访问控制、灰度发布等。Portal 主要提供可视化的管理界面,可以看作是 Admin Service 和 Config Service 的前端界面。

2 资源准备

数据库

官方建议使用MySQL5.7以上。

jdk环境依赖

官网要求jdk版本为1.8+,本次安装采用jdk1.8,可在jdk官网自行寻找所需版本:Java SE | Oracle Technology Network | Oracle

服务器

服务器配置为了方便测试我把三个服务全放到一台服务器上,2核4g的配置需要配置jvm 调优 要不三个java服务占用太大跑不起来。生产根据实际需求就好。

二 安装

2.1 jdk安装

#自行上官网拉取,注意版本号、我这里用的 jdk1.8.0_40

# 上传安装包解压并指定应用位置按个人习惯或者公司要求
tar -zxcf jdk-8u40-linux-x64.gz -C /usr/local
cd /usr/local/
ln -s jdk1.8.0_40 jdk

vim /etc/profile
...
JAVA_HOME=/usr/local/jdk
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

#自定义jvm内存
export JAVA_OPTS="-server -Xms256m -Xmx256m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1024m -XX:MaxNewSize=1024m -XX:SurvivorRatio=22"
...

source /etc/profile

java -version

java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

#后面这条标黄也加上要不测试服务器资源不够用起不来,我这里资源比较紧张。

解释一波

  1. -server:选择服务器模式,适用于运行长时间运行的服务端应用。

  2. -Xms256m:设置初始堆内存大小为256MB。

  3. -Xmx256m:设置最大堆内存大小为256MB。

  4. -Xss256k:设置每个线程的栈大小为256KB。

  5. -XX:MetaspaceSize=128m:设置元空间(Metaspace)的初始大小为128MB。

  6. -XX:MaxMetaspaceSize=384m:设置元空间的最大大小为384MB。

  7. -XX:NewSize=1024m:设置新生代的初始大小为1024MB。

  8. -XX:MaxNewSize=1024m:设置新生代的最大大小为1024MB。

  9. -XX:SurvivorRatio=22:设置新生代中Eden区与Survivor区的比例为22。

2.2 数据库安装

本次安装采用2.0.1版本,这里就不详细介绍数据库怎么安装了。

自行下载sql初始化脚本,该链接下有两个sql,分别是apolloportaldb.sql以及apolloconfigdb.sql,路径链接如下

https://github.com/apolloconfig/apollo/tree/v2.0.1/scripts/sql

# 登录创建数据库
# 登录成功后导入两个sql

mysql -uroot -p < /root/apolloconfigdb.sql
mysql -uroot -p < /root/apolloportaldb.sql

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

验证结果

2.3 使用apollo用户创建数据库

#给apollo用户授权ApolloConfigDB、ApolloPortalDB两个库的使用权限`

mysql -uroot -p
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;

可以使用外部设备连接测试一下我这里用的是navicat。

2.4 安装Apollo

分别下载三个服务安装包adminservice configservice portal

服务启动顺序 apollo-configservie 》 apollo-adminservice 》apollo-portal

# 创建各个服务目录
mkdir -vp /usr/local/apollo/{apollo-adminservice,apollo-configservie,apollo-portal} && cd /usr/local/apollo

# 下载服务安装包
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-adminservice-2.0.1-github.zip apollo-adminservice
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-configservice-2.0.1-github.zip apollo-configservice
wget https://github.com/apolloconfig/apollo/releases/download/v2.0.1/apollo-portal-2.0.1-github.zip apollo-portal

分别解压安装包

# 安装解压命令
yum install unzip -y
# 开始解压
unzip apollo-adminservice-2.0.1-github.zip -d /usr/local/apollo/
unzip apollo-configservice-2.0.1-github.zip -d /usr/local/apollo/
unzip apollo-portal-2.0.1-github.zip -d /usr/local/apollo/

配置apollo-configservice

#进入目录
cd /usr/local/apollo/apollo-configservie/config

#编辑配置文件
vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://192.168.3.132:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = apollo
spring.datasource.password = Apollo@147258

#启动测试命令,后期统一编写systemctl文件
cd /usr/local/apollo/apollo-configservie/scripts && ./startup.sh

配置apollo-adminservice

#进入目录
cd /usr/local/apollo/apollo-adminservice/config

#编辑配置文件
vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://192.168.3.132:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = apollo
spring.datasource.password = Apollo@147258

#程序测试
cd /usr/local/apollo/apollo-adminservice/scripts && ./startup.sh

配置apollo-portal

#进入目录
cd /usr/local/apollo/apollo-portal/config

#编辑配置文件
vim application-github.properties
# 配置数据库信息,按实际填入自己的数据库链接地址以及认证信息
# DataSource
spring.datasource.url = jdbc:mysql://192.168.3.132:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = apollo
spring.datasource.password = Apollo@147258

配置apollo-portal的meta service信息

cd /usr/local/apollo/apollo-portal/config
vim apollo-env.properties
# 假设
DEV的apollo-configservice未绑定域名,地址是1.1.1.1:8080,
FAT的apollo-configservice绑定了域名apollo.fat.xxx.com,
UAT的apollo-configservice绑定了域名apollo.uat.xxx.com,
PRO的apollo-configservice绑定了域名apollo.xxx.com,

那么可以如下修改各环境meta service服务地址,格式为${env}.meta=http://${config-service-url:port},如果某个环境不需要,也可以直接删除对应的配置项,这里就用了dev和pro环境

dev.meta=http://192.168.3.132:8080
#fat.meta=http://localhost:8080
#uat.meta=http://localhost:8080
#lpt.meta=${lpt_meta}
pro.meta=http://192.168.3.132:8080

系统管理文件配置

每次都是去文件目录下启动太麻烦了,systemctl 直接管理。(supervisord 推荐一波感兴趣可以了解一下啊)

cd /etc/systemd/system/

vim apollo-config.service

[Unit]
Description=Apollo Config Service
After=network.target
 
[Service]
Type=simple
User=<运行Apollo的用户>
ExecStart=/<Apollo启动脚本的完整路径>
ExecStop=/<Apollo停止脚本的完整路径>
Restart=on-failure
 
[Install]
WantedBy=multi-user.target


vim apollo-admin.service

[Unit]
Description=Apollo admin Service
After=network.target
 
[Service]
Type=simple
User=<运行Apollo的用户>
ExecStart=/<Apollo启动脚本的完整路径>
ExecStop=/<Apollo停止脚本的完整路径>
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

vim apollo-portal.service

[Unit]
Description=Apollo portal Service
After=network.target
 
[Service]
Type=simple
User=<运行Apollo的用户>
ExecStart=/<Apollo启动脚本的完整路径>
ExecStop=/<Apollo停止脚本的完整路径>
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

2.5 登录测试

服务Ip :8070

初始账号 apollo 密码 admin

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值