apollo 分布式部署单机版实战

1:准备工作

JDK 1.8 +
MYSQL 5.6 +
服务端基于Spring Boot,启动脚本理论上支持所有Linux发行版,建议CentOS 7

2:环境

分布式部署需要事先确定部署的环境以及部署方式。
Apollo目前支持以下环境:
DEV
开发环境
FAT
测试环境,相当于alpha环境(功能测试)
UAT
集成环境,相当于beta环境(回归测试)
PRO
生产环境

3:部署步骤

 1. 创建数据库
 	 Apollo服务端依赖于MySQL数据库,所以需要事先创建并完成初始化
 	 
 2. 获取安装包
	Apollo服务端安装包共有3个:apollo-configservice, apollo-adminservice, apollo-portal
可以直接下载我们事先打好的安装包,也可以自己通过源码构建
 3. 部署Apollo服务端 获取安装包后就可以部署到公司的测试和生产环境了
3.1 创建数据库
Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,
我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。

需要注意的是ApolloPortalDB只需要在生产环境部署一个即可,
而ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB
3.1.1 获取数据库脚本,创建数据库

在这里插入图片描述
创建ApolloPortalDB

脚本来源可以去官方下载
[DB脚本](https://github.com/ctripcorp/apollo/tree/master/scripts)
	通过各种MySQL客户端导入apolloportaldb.sql即可。

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

![在这里插入图片描述](https://img-blog.csdnimg.cn/20191120173828291.png

创建ApolloConfigDB

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

手动导入SQL
通过各种MySQL客户端导入apolloconfigdb.sql即可。

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

以MySQL原生客户端为例:

source /your_local_path/configdb/V1.0.0__initialization.sql

在这里插入图片描述
里面的很多参数的更改可以去看官方 很详细

3.1.2 下载安装包

可以通过两种方式获取安装包:
直接下载安装包
从GitHub Release页面下载预先打好的安装包
如果对Apollo的代码没有定制需求,建议使用这种方式,可以省去本地打包的过程
通过源码构建
从GitHub Release页面下载Source code包或直接clone源码后在本地构建
如果需要对Apollo的做定制开发,需要使用这种方式

我这里直接下载安装包
获取apollo-configservice、apollo-adminservice、apollo-portal安装包
在这里插入图片描述

解压修改配置
配置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 = somepwd

在这里插入图片描述

需要注意的是:apollo.eureka.server.enabled=false 这个配置 ,这个配置是因为公司有注册中心,希望将服务都注册到一个地方,因为apollo 本身自带注册中心,所以这里需要设置为false;然后修改数据库的注册中心地址;这样就完成了注册中心地址的转换
在这里插入图片描述
在这里插入图片描述

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

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

注:由于ApolloConfigDB在每个环境都有部署,所以对不同的环境admin-service需要配置对应环境的数据库参数

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

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

配置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.zip中config目录下的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://1.1.1.1:8080
fat.meta=http://apollo.fat.xxx.com
uat.meta=http://apollo.uat.xxx.com
pro.meta=http://apollo.xxx.com

注1: 为了实现meta service的高可用,推荐通过SLB(Software Load Balancer)做动态负载均衡

注2: meta service地址也可以填入IP,0.11.0版本之前只支持填入一个IP。
从0.11.0版本开始支持填入以逗号分隔的多个地址(PR #1214),
如http://1.1.1.1:8080,http://2.2.2.2:8080,不过生产环境还是建议使用域名(走slb),
因为机器扩容、缩容等都可能导致IP列表的变化

启动顺序

注册中心eureka——>apollo-configservice——>apollo-adminservice——>apollo-portal

效果
在这里插入图片描述
默认账号:apollo admin

下章节:Spring boot项目 集成apollo服务

转载请注明来源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值