分布式配置--Apollo环境搭建

本文内容总结分布式配置Apollo的环境的过程以及遇到的问题

以下:

官方文档请看https://github.com/ctripcorp/apollo/wiki

官方提供了两种配置Apollo的方法,一个是Quick Start,另一种是分布式部署。

#####Quick Start

QuickStart目的是让使用者快速的上手Apollo项目,能够在几分钟内在本地环境部署、启动Apollo配置中心。操作十分简单,只需要在demo.sh里修改相关的数据库地址即可,单机部署,不能保证高可用,不适用于生产环境,这里不过多介绍。

分布式部署
环境准备

Centos7.5,JDK 1.8,Mysql5.7

由于在Apollo里,不同的环境在物理上进行了隔离,及DEV环境和FAT环境不能使用同一个数据库,所以如果需要多个环境,则要多个Mysql数据库进行分别部署,这里只展示一个环境下的分布式部署过程。

导入Sql到数据库

在Mysql中创建两个数据库ApolloPortalDB和ApolloConfigDB(apolloportaldb.sqlapolloconfigdb.sql),这里有个坑,如果你的数据库是不区分大小写的,在后面配置数据库连接时要注意把对应的连接改成小写,否则保持大小写。

获取安装包

直接下载安装包从GitHub Release页面下载预先打好的安装包,分别为apollo-configservice、apollo-adminservice、apollo-portal放到三台不同的服务器上。

配置apollo-configservice
  1. 打开config目录下的application-github.properties文件
  2. 填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格!
1
2
3
4
# DataSource
spring.datasource.url = jdbc:mysql://XXXX:3306/apolloconfigdb?useSSL=false&characterEncoding=utf8
spring.datasource.username = someuser
spring.datasource.password = somepwd

Tips:此处需要注意刚刚说的数据库大小写敏感的问题,按照自己数据库格式来,一般为小写

3.修改数据库apolloconfigdb中serverconfig表中eureka.service.url的值为你的apollo-configservice的虚拟机的ip地址,因为apollo-configservice既是一个configservice也是一个metaservice,修改后为http://xxxx:8080/eureka/, 这一步必不可少。这篇文章不讲高可用,如果想让metaservice做成高可用模式请看后续文章。

4.进入scripts下启动apollo-configservice,命令 ./startup.sh

配置apollo-adminservice
  1. 打开config目录下的application-github.properties文件

  2. 填写正确的ApolloConfigDB数据库连接串信息,注意用户名和密码后面不要有空格!

    Tips 这里注意apollo-adminservice连接的是同一个数据库

  3. 进入scripts下启动apollo-adminservice,命令 ./startup.sh

######配置apollo-portal

  1. 打开config目录下的application-github.properties文件

  2. 填写正确的ApolloPortalDB数据库连接串信息,注意用户名和密码后面不要有空格!

    Tips 注意这里连接的是ApolloPortalDB数据库

  3. 修改apollo-env.properties 里的内容

    1
    2
    local.meta=http://metaservice的ip:8080
    dev.meta=http://metaservice的ip:8080

​ Tips metaservice的IP就是apollo-configservice的ip就是Eureka的ip

这篇文章不讲高可用,如果想让metaservice做成高可用模式请看后续文章。

4.进入scripts执行启动命令。

验证

当三台机器在启动过程中都没有出现异常的话,可以登陆apollo-portal所在ip地址:8070,进行验证,初始账户apollo,密码admin。进入右上角点击管理员工具,查看系统信息,如果在上面可以看到运行的adminservice和configservice状态的话说明配置正常。

-->