Apollo配置中心搭建

目录

        • 获取源码
        • 创建数据库
          • 导入 scripts/sql 文件夹下的两个sql文件(apolloconfigdb.sql、apolloportaldb.sql)
            • 手动导入SQL创建
            • 通过Flyway导入SQL创建
        • 调整服务端配置
          • 调整ApolloPortalDB配置
            • apollo.portal.envs - 可支持的环境列表
            • organizations - 部门列表
          • 调整ApolloConfigDB配置
            • eureka.service.url - Eureka服务Url
        • 编译打包
          • 配置数据库连接信息、各环境meta service地址
          • 执行编译、打包
        • 部署Apollo服务端
          • 部署apollo-configservice、apollo-adminservice
          • 部署apollo-portal
        • 访问apollo

获取源码

从GitHub Release页面下载Source code包或直接clone源码

创建数据库

Apollo服务端共需要两个数据库,ApolloPortalDBApolloConfigDB

注:ApolloPortalDB只需要执行部署一次即可,而ApolloConfigDB需要在每个环境部署一套,如:有开发(dev)和生产(pro)两个环境,则需要在开发环境和生产环境分别部署ApolloConfigDB数据库,ApolloPortalDB数据库只需要在其中的一个环境部署。

  • 导入 scripts/sql 文件夹下的两个sql文件(apolloconfigdb.sql、apolloportaldb.sql)

可以根据实际情况选择通过手动导入SQL或是通过Flyway自动导入SQL创建。

  1. 手动导入SQL创建

通过各种MySQL客户端导入

1.3.0版本开始为了支持Flyway,sql位置和命名从之前的scripts/sql/apolloconfigdb.sql改为了scripts/db/migration/configdb/V1.0.0__initialization.sql

  1. 通过Flyway导入SQL创建

1、需要1.3.0及以上版本。

2、根据实际情况修改flyway-portaldb.properties中的flyway.userflyway.passwordflyway.url配置。

3、在apollo项目根目录下执行mvn -N -Pportaldb flyway:migrate

调整服务端配置

  1. 调整ApolloPortalDB配置

    配置项统一存储在ApolloPortalDB.ServerConfig表中,也可以通过管理员工具 - 系统参数页面进行配置,无特殊说明则修改完一分钟实时生效。

    • apollo.portal.envs - 可支持的环境列表

      默认值是dev,如果portal需要管理多个环境的话,以逗号分隔即可(大小写不敏感),如:

      DEV,FAT,UAT,PRO
      

      修改完需要重启生效

    • organizations - 部门列表

      Portal中新建的App都需要选择部门,所以需要在这里配置可选的部门信息,样例如下:

      [{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"}]
      

Apollo配置中心搭建_第1张图片

  1. 调整ApolloConfigDB配置

    配置项统一存储在ApolloConfigDB.ServerConfig表中,需要注意每个环境的ApolloConfigDB.ServerConfig都需要单独配置,修改完一分钟实时生效。

    • eureka.service.url - Eureka服务Url

      不管是apollo-configservice还是apollo-adminservice都需要向eureka服务注册,所以需要配置eureka服务地址。 按照目前的实现,apollo-configservice本身就是一个eureka服务,所以只需要填入apollo-configservice的地址即可,如有多个,用逗号分隔(注意不要忘了/eureka/后缀)。
      Apollo配置中心搭建_第2张图片

编译打包

  1. 配置数据库连接信息、各环境meta service地址

    Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑 scripts/build.sh,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接信息。Apollo Portal需要在不同的环境访问不同的meta service(apollo-configservice)地址,所以需要在打包时提供这些信息,如果某个环境不需要,也可以直接删除对应的配置项
    Apollo配置中心搭建_第3张图片

    如需实现上图所示的密文,需对apollo-common这个项目进行稍微调整

    1. 在这个工程的pom文件中加入jasypt依赖
    
    
        com.github.ulisesbocchio
        jasypt-spring-boot-starter
        2.1.0
    
    
    1. 在这个工程的application.properties文件中加入
    // *33F5474A1CCD637271E4D3F3BBD66E431358D75E值随意设置
    jasypt.encryptor.password=*33F5474A1CCD637271E4D3F3BBD66E431358D75E
    

    1. 下载 jasypt 的jar包,通过Windows的cmd 执行如下命令,得到加密后的密文
    // input的值为数据库的明文密码,password为application.properties中设置的值
    java -cp E:\Downloads\jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="12345678" password=*33F5474A1CCD637271E4D3F3BBD66E431358D75E algorithm=PBEWithMD5AndDES
    
  2. 执行编译、打包
    ./build.sh
    

    执行完后,会在apollo-adminserviceapollo-configserviceapollo-portal 生成对应的压缩包。

部署Apollo服务端

  1. 部署apollo-configservice、apollo-adminservice

    将对应环境的apollo-configservice-x.x.x-github.zip apollo-adminservice-x.x.x-github.zip上传到服务器上,解压后执行scripts/startup.sh即可。可以在scripts/startup.sh中按照实际的环境设置一个JVM内存

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

    注:先启动apollo-configservice,后启动 apollo-adminservice

  2. 部署apollo-portal

    apollo-portal-x.x.x-github.zip上传到服务器上,解压后执行scripts/startup.sh即可。如需停止服务,执行scripts/shutdown.sh。以在scripts/startup.sh中按照实际的环境设置一个JVM内存。

    export JAVA_OPTS="-server -Xms4096m -Xmx4096m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:SurvivorRatio=22"
    

    注1:apollo-portal需要等apollo-configservice、apollo-adminservice启动后再启动

    注2:如果需要修改JVM参数,可以修改scripts/startup.sh的JAVA_OPTS部分。

    注3:如要调整各个服务的日志输出路径,可以修改scripts/startup.sh和apollo-xxx.confLOG_DIR

    注4:如要调整服务的监听端口,可以修改scripts/startup.sh中的SERVER_PORT

访问apollo

  • 输入 http://ip:8070 打开apollo配置中,初始用户为 apollo/admin
    Apollo配置中心搭建_第4张图片
    参考文章:https://github.com/ctripcorp/apollo/wiki/分布式部署指南

你可能感兴趣的:(Apollo)