apollo搭建多环境

1 篇文章 0 订阅

说明:

  • Apollo是一个配置管理工具,具体可以看官网 https://ctripcorp.github.io/apollo/#/zh/README,个人觉得比spring cloud config好用
  • 这篇教程部署双环境,本机部署Dev环境,阿里云部署Pro环境,apollo-portal部署在本机,用来管理Dev环境和Pro环境
  • 采用分布式部署/物理机部署/直接下载安装包。因为我不需要定制化开发,故没有采用源码构建的方式,安装包自行下载


部署Dev环境

说明:本地需要安装一个MySQL,里面需要两个库,一个是ApolloConfigDB(ApolloConfigService和ApolloAdminService使用),一个是ApolloPortalDB(ApolloPortal使用),数据库脚本官网有,这里就不贴了

2.2.1.1.1 获取apollo-configservice、apollo-adminservice、apollo-portal安装包

GitHub Release页面下载最新版本的apollo-configservice-x.x.x-github.zipapollo-adminservice-x.x.x-github.zipapollo-portal-x.x.x-github.zip即可。

2.2.1.1.2 配置数据库连接信息

Apollo服务端需要知道如何连接到你前面创建的数据库,数据库连接串信息位于上一步下载的压缩包中的config/application-github.properties中。

2.2.1.1.2.1 配置apollo-configservice的数据库连接信息

  1. 解压apollo-configservice-x.x.x-github.zip
  2. 用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件
  3. 填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格!
  4. 修改完的效果如下:
    # DataSource
    spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
    spring.datasource.username = someuser
    spring.datasource.password = somepw

2.2.1.1.2.2 配置apollo-adminservice的数据库连接信息

  1. 解压apollo-adminservice-x.x.x-github.zip
  2. 用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件
  3. 填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格!
  4. 修改完的效果如下:
    # DataSource
    spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8
    spring.datasource.username = someuser
    spring.datasource.password = somepw

2.2.1.1.2.3 配置apollo-portal的数据库连接信息

  1. 解压apollo-portal-x.x.x-github.zip
  2. 用程序员专用编辑器(如vim,notepad++,sublime等)打开config目录下的application-github.properties文件
  3. 填写正确的ApolloPortalDB数据库连接串信息,注意用户名和密码后面不要有空格!
  4. 修改完的效果如下:
    # DataSource
    spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8
    spring.datasource.username = someuser
    spring.datasource.password = somepwd

2.2.1.1.2.4 配置apollo-portal的meta service信息

Apollo Portal需要在不同的环境访问不同的meta service(apollo-configservice)地址,所以我们需要在配置中提供这些信息。默认情况下,meta service和config service是部署在同一个JVM进程,所以meta service的地址就是config service的地址。这里有两种方式,我只贴出我用的一种方式,另一种方式可以看官网

使用程序员专用编辑器(如vim,notepad++,sublime等)打开apollo-portal-x.x.x-github.zipconfig目录下的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},如果某个环境不需要,也可以直接删除对应的配置项(如lpt.meta):这里不需要的环境最好全部删掉

dev.meta=http://localhost:8080
pro.meta=http://阿里云地址:8080

找到scripts/startup.sh启动命令,运行,成功启动后输入http://lcoalhost:8070,打开portal页面,找到管理员工具-系统参数,key中输入apollo.portal.envs,点击查询,查看当前配置的环境

在value中输入dev,pro点击保存,重启portal。注意:这里一定要配置下,不然后面系统信息环境是不会显示Pro的


部署Pro环境

说明:Pro环境也需要一个MySQL,但是它只需要安装一个库ApolloConfigDB(ApolloConfigService和ApolloAdminService使用),把apollo-configservice-x.x.x-github.zip和apollo-adminservice-x.x.x-github.zip上传到阿里云解压,跟Dev一样设置好数据库连接信息,启动即可,由于本机的Apollo-portal已经配置了阿里云的meta信息,所以就可以同时管理Dev和Pro环境了。

注意:pro.meta=http://阿里云地址:8080,这个地址打开其实是一个eureka的界面,portal也是通过Eureka来拉取并管理Apollo-config和Apollo-admin,但是eureka注册地址默认是阿里云的内网地址,本机是访问不到的,故没法使用,需要将Pro环境Apollo-config和apoll-admin的注册地址改成公网。如下

将Apollo-configservice的启动脚本startup.sh改下:

export JAVA_OPTS="$JAVA_OPTS -Dserver.port=$SERVER_PORT -Deureka.instance.instance-id=阿里云公网IP:8080 -Deureka.instance.prefer-ip-address=true -Deureka.instance.ip-address=阿里云公网IP -Dlogging.file=$LOG_DIR/$SERVICE_NAME.log -XX:HeapDumpPath=$LOG_DIR/HeapDumpOnOutOfMemoryError/"

加上-Deureka.instance.instance-id=阿里云公网IP:8080 -Deureka.instance.prefer-ip-address=true -Deureka.instance.ip-address=阿里云公网IP

 

将Apollo-adminservice的启动脚本startup.sh改下:

export JAVA_OPTS="$JAVA_OPTS -Dserver.port=$SERVER_PORT -Deureka.instance.instance-id=阿里云公网IP:8090 -Deureka.instance.prefer-ip-address=true -Deureka.instance.ip-address=阿里云公网IP -Dlogging.file=$LOG_DIR/$SERVICE_NAME.log -XX:HeapDumpPath=$LOG_DIR/HeapDumpOnOutOfMemoryError/"
加上-Deureka.instance.instance-id=阿里云公网IP:8090 -Deureka.instance.prefer-ip-address=true -Deureka.instance.ip-address=阿里云公网IP


成功后打开本地部署的Apollo-portal,点击管理员工具-系统信息可以看到下面界面,说明搭建成功


注意点:

  • MySQL版本尽量在5.7及其以上
  • 阿里云端口安全组一定要开放
  • portal只部署一份,数据库ApolloPortalDB也只有一份,但是不同的环境是需要部署不同的Apollo-configservice,Apollo-adminservice,以及数据库ApolloConfigDB
  • 要保证portal能访问到各环境的eureka的instanceId
  • 多看看文档
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值