前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候,每一步都踩着坑过来的。因此写文档与需要的朋友分享。
此篇文章不代表官方部署流程,只是自己的部署的实践方式,屏蔽了一些官方的多余的部署讲解。如果有问题还请到Apollo的wiki文档进行查看:https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97
另外,真想吐槽下Apollo配置中心部署恶心度真的是……,吐槽归吐槽,但是Apollo配置中心的功能强大而且具有非常高的可用性,在同类型产品里也算是数一数二。
在进行分布式部署前我还是建议用Apollo的quick start版本进行试用。可以参考我这篇文章《基于winserver部署Apollo初次体验(附.net客户端demo)》
以下正式开始部署
源码\scripts\sql下两脚本,到mysql执行
apolloconfigdb.sql
apolloportaldb.sql
切换到上面已下载阿波罗源码\scripts目录下,运行build.bat。需要等待几分钟,编译完成后,准备三个服务部署,部署顺序也如下
LOG_DIR=D:/apollo/apollo-configservice-0.11.0-SNAPSHOT-github/log
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused
spring.datasource.url=jdbc:mysql://10.1.20.143:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=12345678
LOG_DIR=D:/apollo/apollo-portal-0.11.0-SNAPSHOT-github/log
SERVER_PORT=8070
在C:\opt\settings 添加文件server.properties内容:
env=DEV
以上为单机部署的流程,下面讲解集群部署的流程:
Eureka与apollo-configservice为同一个JVM进程,为了好描述拆开了。
在apollo-configservice与apollo-adminservice启动时会向Eureka进行服务注册,Apollo客户端和apollo-Portal会从Eureka进行服务查找,然后通过服务地址直接访问
每个服务都是无状态的,因此横向扩展相对比较简单
update apolloconfigdb.serverconfig set value = 'http://10.1.20.137:8080/eureka/' where id = 1
到B服务器重复上述两个服务的部署步骤(注意基本环境的安装)
输入http://10.1.20.137:8080进行查看,eureka管理界面status出现多台主机名称为部署成功。
以上为我与大家分享的部署流程,如有问题可以及时在下方评论与我,我会尽快回复