[TOC]node
官方的文档坑比较多,在这里记录一下mysql
从github上克隆源码到本机,项目结构以下图1所示:git
<div align=center>github
<center>图1</center>spring
<div align=left>sql
部署单节点或集群,只关心3个工程:数据库
#!/bin/bash ## 修改日志存放目录和服务端口 SERVICE_NAME=apollo-configservice ## 日志目录,建议修改在启动apollo服务的用户目录下,避免使用超级用户启动服务 LOG_DIR=/home/sharing/apollo_node_1/logs/ ## 服务端口 SERVER_PORT=8080 ... ...
## 若是apollo部署在云上或者多网卡的机器上,则必须执行erueka实例的地址(即configserver的地址/eureka) ## 当部署在云上的时候,因为没有只有内网网卡,会致使configserver注册到eureka的地址的为内网ip,致使客户端(应用程序)链接失败,没法使用 ## 当部署在多网卡上的时候,因为有多个网卡的存在,而configserver默认获取第一个合法的ip,这个ip不必定是外网能访问的ip,一样会致使客户端链接失败 ## 多网卡的状况下,能够在spring cloud配置要忽略的网卡名称,具体参考Spring Cloud的文档 ## 因此建议指定erueka的实例地址 ########### The following is the same for configservice, adminservice, portal ########### export JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC -XX:ParallelGCThreads=4 ... export JAVA_OPTS="$JAVA_OPTS -Dserver.port=$SERVER_PORT
添加eureka实例的地址:windows
########### The following is the same for configservice, adminservice, portal ########### export JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC -XX:ParallelGCThreads=4 ... export JAVA_OPTS="$JAVA_OPTS -Deureka.instance.ip-address=你的外网IP -Deureka.instance.prefer-ip-address=true -Dserver.port=$SERVER_PORT ...
apollo-adminservice: 同上bash
apollo-portal: 同上服务器
修改构建脚本 构建脚本路径:/apollo/scripts/build.sh或/apollo/scripts/build.bat 分别修改 config db 和 portal db 的数据库链接信息,以及多个meta server(即configService)的地址:
#!/bin/sh # apollo config db info apollo_config_db_url=jdbc:mysql://IP:PORT/ApolloConfigDB?characterEncoding=utf8 apollo_config_db_username=username apollo_config_db_password=password # apollo portal db info apollo_portal_db_url=jdbc:mysql://IP:PORT/ApolloPortalDB?characterEncoding=utf8 apollo_portal_db_username=username apollo_portal_db_password=password # meta server url, different environments should have different meta server addresses ## 开发环境 dev_meta=http://IP1:PORT1,IP2:PORT2 ## 测试环境 fat_meta=http://IP:PORT ## BETA环境 uat_meta=... ## 生产环境 pro_meta=...
,
隔开。执行上述修改后的build.sh(windows执行build.bat),以后会在各自模块的target文件夹下生成zip压缩包,复制到服务器上,解压并执行scripts目录下的startup.sh,启动顺序:configService -> adminService -> portal,等待启动完成后,打开portal页面便可以管理配置信息。 默认的初始管理员帐户和密码:apollo/admin
从这里下载
解压文件,修改apollo-configservice、apollo-adminservice和apollo-portal的config目录下的application-github.properties,添加数据库配置信息和eureka实例ip(portal无需注册到服务)等。
修改apollo-portal的config目录下的app.properties,填写dev、fat、uat以及pro的meta server地址。
导入两个sql文件建库
apolloportaldb.sql apolloconfigdb.sql 修改ApolloConfigDB的ServerConfig表,Key为 eureka.service.url的Value字段,更新为你的eureka实例地址,如http://1.1.1.1:8080/eureka/,即同configService的ip和端口。多个节点,地址用
,
隔开。
参考apollo的官方的部署架构图:
<div align=center>
图2
图3
<div align=left>
,
隔开,不然configService和adminService不能注册到eureka。<div align=center>
图4
<div align=left> 同一个环境的多个节点应该分别部署在不一样的机器,实现多活。
注意:端口和日志路径默认在startup脚本里面有配置,因为apollo服务是基于SpringBoot的,system properties的入参优先级最高,因此须要修改startup的配置才会生效。或者删除startup里面关于日志路径和端口的配置,就可使外部的端口和日志路径配置生效。
步骤总结:
,
隔开)。其余总结: