apollo学习2:docker集群部署
下图是官方给的Apollo架构:
整体分为四大模块:
1:configService
1):服务于Client进行配置获取
2:adminService
1):服务于Portal进行配置管理,Portal通过调用AdminService进行配置管理和发布。
3:client
1):用户获取到配置数据,和ConfigService保持长连接
4:portal
1):配置管理页面:存放用户权限、项目和配置的元数据信息
所以在部署的时候, 我们需要部署三个服务,configService,adminService,portal
先初始化数据库:
导入官网数据库表初始化:
1):在serviceconfig表添加多环境:apollo.portal.envs,如dev,test,prod
2): 配置eureka集群地址:eureka.service.url(不指定则注册到config_service服务的8080端口)
3):users表初始化一条用户名和密码,Authorities初始化,使用官网给的,apollo:admin登录
4):serviceconfig添加superAdmin,超级管理员指定apollo,登录以后即可修改密码
其他配置参考官网可选
部署配置:
configService配置如下:
1):指定数据库配置
2):指定端口8091,默认8080(和默认eureka一样)
3):EUREKA_INSTANCE指定eureka集群域名:默认本地eureka,即 localhost:8080
export name=apollo_config #拉取apolloconfig docker镜像,version不指定默认是最新版本 docker pull apolloconfig/apollo-configservice:${version} DOCKER_ID=`docker ps -a|grep ${name}|awk -F " " '{print $1}'` #查找是否有正在运行的旧容器,如果有,将其停止并删除 if [ "$DOCKER_ID" = "" ];then echo "Docker ${name} no found" else echo "你的Docker镜像 ${name}的ID为:$DOCKER_ID即将被停止..." docker stop $DOCKER_ID docker rm $DOCKER_ID fi docker run -d \ --network host \ -e SPRING_DATASOURCE_URL='jdbc:mysql://db' \ -e SPRING_DATASOURCE_USERNAME='xxx' \ -e SPRING_DATASOURCE_PASSWORD='xxx' \ -e EUREKA_INSTANCE_HOME_PAGE_URL='https://xxx' \ -e EUREKA_INSTANCE_PREFER_IP_ADDRESS='false' \ -p 8091:8080 \ --name apollo_config apolloconfig/apollo-configservice
adminService配置如下:
1):指定数据库配置(和configService公用同一套数据库)
2):默认端口即可
3):EUREKA_INSTANCE指定eureka集群域名:默认本地eureka,即 localhost:8080
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | export name=apollo_admin docker pull apolloconfig/apollo-adminservice DOCKER_ID=`docker ps -a|grep ${name}|awk -F " " '{print $1}' ` #查找是否有正在运行的旧容器,如果有,将其停止并删除 if [ "$DOCKER_ID" = "" ];then echo "Docker ${name} no found" else echo "你的Docker镜像 ${name}的ID为:$DOCKER_ID即将被停止..." docker stop $DOCKER_ID docker rm $DOCKER_ID fi docker run -d \ --network host \ -e SPRING_DATASOURCE_URL= 'jdbc:mysql://db' \ -e SPRING_DATASOURCE_USERNAME= 'xxx' \ -e SPRING_DATASOURCE_PASSWORD= 'xxx' \ --name apollo_admin apolloconfig/apollo-adminservice |
以上,configService和adminService将被部署在同一集群,注册到同一eureka集群
protal配置如下:
1):SPRING_DATESOURCE指定变量数据库配置
2):DEV_META指定环境dev和meta地址,meta地址是apollo-configservice集群地址,默认暴露localhost:8080,调取configService接口获取到adminService服务,然后进行操作
如需部署多环境,指定 TEST_META即添加test环境
export name=apollo_portal #拉取apolloconfig docker镜像,version不指定默认是最新版本 docker pull apolloconfig/apollo-protal:${version} DOCKER_ID=`docker ps -a|grep ${name}|awk -F " " '{print $1}'` #查找是否有正在运行的旧容器,如果有,将其停止并删除 if [ "$DOCKER_ID" = "" ];then echo "Docker ${name} no found" else echo "你的Docker镜像 ${name}的ID为:$DOCKER_ID即将被停止..." docker stop $DOCKER_ID docker rm $DOCKER_ID fi docker run -d \ --network host \ -e SPRING_DATASOURCE_URL='jdbc:mysql://ip:3306/db' \ -e SPRING_DATASOURCE_USERNAME='xxx' \ -e SPRING_DATASOURCE_PASSWORD='xxx' \ -e DEV_META='http://localhost:8080' \ --name apollo_portal apolloconfig/apollo-portal
多套测试环境,portal只需要部署一个
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律