采用apollo官网 高可用,双(多)环境的部署方式,部署图如下:

openeuler harbor高可用部署_github

  • 不同环境使用不同的 ConfigDB 。
  • 所有环境使用相同的 PortalDB 。
  • 相同环境下配置多台服务器实现高可用,每台服务器均部署Portal、ConfigService、AdminService。

根据上面的架构图,配置DEV,TEST两个环境,每个环境分别实现两套 Service 服务,两套 Service 服务在同一台机器上实现。

环境准备

  • 2个mysql数据库实例,版本为5.7.35(版本需要大于5.6)。
  • 2台linux服务器。
  • apollo-2.0.1版本压缩包

服务器名

service1(dev)

service2(test)

apollo服务

apollo-dev

apollo-test

mysql服务

mysql-dev,portaldb

mysql-test

mysql依赖

需要下载两个sql文件 <apolloportaldb.sql>,<apolloconfigdb.sql>,sql文件下载路径位于github:https://github.com/apolloconfig/apollo/blob/master/scripts/sql/

分别进入service1、service2上的mysql中执行mysql脚本,PortalDB的数据统一存在service1中,只需要在service执行 apolloportaldb.sql 。

# server1
source apolloportaldb.sql
source apolloconfigdb.sql

# server2
source apolloconfigdb.sql

注:如果已经创建过Apollo数据库,请注意备份数据。默认sql文件会清空Apollo相关的表。或者可以更改sql文件不清空表。

下载压缩包

从GitHub Release页面下载最新版本的apollo-configservice-2.0.1-github.zip、apollo-adminservice-2.0.1-github.zip和apollo-portal-2.0.1-github.zip。

解压压缩包

将上面下载的3个压缩包分别解压至server1、server2服务器/opt/apollo目录下,高可用备份至/opt/apollo1目录下:

/opt/apollo/apollo-adminservice-2.0.1-github
/opt/apollo/apollo-portal-2.0.1-github
/opt/apollo/apollo-configservice-2.0.1-github

# 高可用
/opt/apollo1/apollo-adminservice-2.0.1-github
/opt/apollo1/apollo-portal-2.0.1-github
/opt/apollo1/apollo-configservice-2.0.1-github

配置环境信息

修改数据库连接信息

server1、server2分别修改上面3个解压后目录的config目录下的application-github.properties的数据库连接信息,比如/opt/apollo/apollo-adminservice-2.0.1-github/config/application-github.properties:

# 填写自己数据库对应的连接信息和账号密码
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd

修改服务端口号

server1、server2分别修改上面解压后3个目录的scripts目录下的startup.sh,端口根据原端口进行灵活调整:

# ==========  server1  ==========
# apollo-adminservice,8090修改为自己想设置的端口
SERVER_PORT=${SERVER_PORT:=8090}

# apollo-configservice,8080修改为自己想设置的端口
SERVER_PORT=${SERVER_PORT:=8080}

# apollo-portal,8070修改为自己想设置的端口
SERVER_PORT=${SERVER_PORT:=8070}

# ==========  server1高可用  ==========
# apollo1的apollo-adminservice,8090修改为自己想设置的端口
SERVER_PORT=${SERVER_PORT:=28090}

# apollo1的apollo-configservice,8080修改为自己想设置的端口
SERVER_PORT=${SERVER_PORT:=28080}

# apollo1的apollo-portal,8070修改为自己想设置的端口
SERVER_PORT=${SERVER_PORT:=28070}

server2同理。

修改数据库表

修改server1 apolloportaldb库serverconfig表

# 环境的地址选择高可用的其中一个即可,eruka服务间会相互注册
key=apollo.portal.envs
value={
    "DEV":"http://{dev域名}:8080",
    "TEST":"http://{test域名}:8080",
}

修改server1 apolloportaldb库serverconfig表)

key=apollo.portal.envs
value=dev,test(这里根据上面启用的实际环境名称配置)

分别修改server1、server2 apolloconfigdb库apolloconfigdb表

key=eureka.service.url
value=http:域名:8080/eureka/,http:域名:28080/eureka/(多个高可用服务时配置多个)

启停服务

启动服务

准备工作都完成后,需要将apollo各组件的服务分别启动,完成部署工作。【注意:服务的启动顺序为:configservice -> adminservice -> portal】,因为configService中自带eureka 和 meta服务的包,后面的服务需要依赖。

server1:

sh /opt/apollo/apollo-configservice-2.0.1-github/scripts/startup.sh
sh /opt/apollo/apollo-adminservice-2.0.1-github/scripts/startup.sh
sh /opt/apollo/apollo-portal-2.0.1-github/scripts/startup.sh

sh /opt/apollo1/apollo-configservice-2.0.1-github/scripts/startup.sh
sh /opt/apollo1/apollo-adminservice-2.0.1-github/scripts/startup.sh
sh /opt/apollo1/apollo-portal-2.0.1-github/scripts/startup.sh

server2:

sh /opt/apollo/apollo-configservice-2.0.1-github/scripts/startup.sh
sh /opt/apollo/apollo-adminservice-2.0.1-github/scripts/startup.sh
sh /opt/apollo/apollo-portal-2.0.1-github/scripts/startup.sh

sh /opt/apollo1/apollo-configservice-2.0.1-github/scripts/startup.sh
sh /opt/apollo1/apollo-adminservice-2.0.1-github/scripts/startup.sh
sh /opt/apollo1/apollo-portal-2.0.1-github/scripts/startup.sh

停止服务

如果需要停止服务:

server1:

sh /opt/apollo/apollo-configservice-2.0.1-github/scripts/shutdown.sh
sh /opt/apollo/apollo-adminservice-2.0.1-github/scripts/shutdown.sh
sh /opt/apollo/apollo-portal-2.0.1-github/scripts/shutdown.sh

sh /opt/apollo1/apollo-configservice-2.0.1-github/scripts/shutdown.sh
sh /opt/apollo1/apollo-adminservice-2.0.1-github/scripts/shutdown.sh
sh /opt/apollo1/apollo-portal-2.0.1-github/scripts/shutdown.sh

server2:

sh /opt/apollo/apollo-configservice-2.0.1-github/scripts/shutdown.sh
sh /opt/apollo/apollo-adminservice-2.0.1-github/scripts/shutdown.sh
sh /opt/apollo/apollo-portal-2.0.1-github/scripts/shutdown.sh

sh /opt/apollo1/apollo-configservice-2.0.1-github/scripts/shutdown.sh
sh /opt/apollo1/apollo-adminservice-2.0.1-github/scripts/shutdown.sh
sh /opt/apollo1/apollo-portal-2.0.1-github/scripts/shutdown.sh

查看是否部署成功

浏览器打开: http://server1:8070,打开成功则部署成功。