centos7部署apollo配置中心

apollo官方文档地址:www.apolloconfig.com/#/zh/README

1. 准备工作

1.1 准备java环境

官方建议Java环境应为:Java 1.8+
可以使用java -version 查看是否Java环境, 输出应为下方这样1.8+版本

openjdk version "1.8.0_292"   
OpenJDK Runtime Environment (build 1.8.0_292-b10)    
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)   
复制代码

若显示没有Java命令或版本太低,可以使用yum安装
yum install lrzsz java-1.8.0-openjdk.x86_64

1.2 准备mysql环境

  • 版本要求:5.6.5+

Apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。

连接上MySQL后,可以通过如下命令检查:
SHOW VARIABLES WHERE Variable_name = 'version';

Variable_name Value
version 5.7.11

没有安装mysql的自行安装,MariaDB可能会有问题,尽量使用mysql

  • 部署台数要求

每个环境各需要一套数据库,如果有dev、test 和 production 3个环境需要配置中心,则需要使用3套数据库。生产环境apollo使用的数据库最好支持高可用。

1.3 准备apollo安装包和sql脚本

  • 项目代码位置: github.com/ctripcorp/a…
  • 选择最新 Releases 版本下载组件(共3个),例如:apollo-adminservice-1.8.2-github.zip、apollo-configservice-1.8.2-github.zip、 apollo-portal-1.8.2-github.zip
  • 下载sql脚本(共2个),位置为scripts/sql/apolloportaldb.sql 和 scripts/sql/apolloconfigdb.sql

1.4 在防火墙开启对应端口或关闭防火墙

开启对应端口方法自行百度。关闭命令如下:
systemctl stop firewalld.service
systemctl disable firewalld.service
临时关闭命令: setenforce 0
永久关闭SELinux:
vi /etc/sysconfig/selinux ,然后将配置SELinux=enforcing改为SELinux=disabled ,重启系统生效,可和setenforce 0一起使用则无需重启系统。

2. 部署

2.1 创建数据库

  • 初始化 ApolloPortalDB

新建数据库ApolloPortalDB,并执行apolloportaldb.sql进行初始化。执行完成后使用以下语句进行验证:

select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
复制代码

应输出一条记录, 若表是空的,则可尝试将sql文件的语句copy到 Navicat 等客户端执行。

Id Key Value Comment
1 apollo.portal.envs dev 可支持的环境列表
  • 初始化 ApolloConfigDB

新建数据库ApolloConfigDB,并执行apolloconfigdb.sql进行初始化。执行完成后使用以下语句进行验证:

select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit 1;
复制代码

应输出一条记录, 若表是空的,则可尝试将sql文件的语句copy到 Navicat 等客户端执行。

Id Key Value Comment
1 eureka.service.url http://127.0.0.1:8080/eureka/ Eureka服务Url

2.2 部署程序并修改配置文件

  • 部署 apollo-configservice

将对应环境的apollo-configservice-x.x.x-github.zip上传到服务器上,然后解压,打开config目录下的application-github.properties文件,填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格,密码不需要用引号括起来!

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
复制代码
  • 部署 apollo-adminservice

将对应环境的apollo-adminservice-x.x.x-github.zip上传到服务器上,然后解压,打开config目录下的application-github.properties文件,填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格,密码不需要用引号括起来!

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
复制代码
  • 部署 apollo-portal

将对应环境的apollo-portal-x.x.x-github.zip上传到服务器上,然后解压,打开config目录下的application-github.properties文件,填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格,密码不需要用引号括起来!

# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd
复制代码

打开config目录下的apollo-env.properties 文件,填写正确的Meta Service地址。 为了实现meta service的高可用,推荐通过SLB(Software Load Balancer)做动态负载均衡

local.meta=http://localhost:8080
dev.meta=http://192.168.230.129: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://192.168.230.128:8080
复制代码

3. 启动

3.1 修改启动时的JVM内存(非生产环境一般不修改此项)

在各个组件的 scripts/startup.sh 文件中可以设置JVM内存。如果需要修改JVM参数,可以修改scripts/startup.sh的JAVA_OPTS部分。以下是我们的默认设置,供参考:

export JAVA_OPTS="-server -Xms6144m -Xmx6144m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=4096m -XX:MaxNewSize=4096m -XX:SurvivorRatio=18"
复制代码

3.2 修改启动时的端口号

如要调整服务的监听端口,可以修改scripts/startup.sh中的SERVER_PORT。另外apollo-configservice同时承担meta server职责,如果要修改端口,注意要同时ApolloConfigDB.ServerConfig表中的eureka.service.url配置项以及apollo-portal和apollo-client中的使用到的meta server信息。

3.3 修改程序的日志文件路径

如要调整服务的日志输出路径,可以修改scripts/startup.sh和apollo-configservice.conf(或apollo-portal.conf、或apollo-adminservice.conf)中的LOG_DIR。

3.4 启动组件

解压后执行scripts/startup.sh即可。如需停止服务,执行scripts/shutdown.sh.

注意:如果ApolloConfigDB.ServerConfig的eureka.service.url只配了当前正在启动的机器的话,在启动apollo-configservice的过程中会在日志中输出eureka注册失败的信息,例如: com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused。需要注意的是,这个是预期的情况,因为apollo-configservice需要向Meta Server(它自己)注册服务,但是因为在启动过程中,自己还没起来,所以会报这个错。后面会进行重试的动作,所以等自己服务起来后就会注册正常了。

3.5 访问apollo-portal页面

经过上面的步骤,apollo配置中心已经部署完成。可以通过apollo-portal所在的http://ip:port 访问页面,例如http://192.168.230.128:8070/

360截图17401209677493.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享