Docker部署Apollo配置心
1.Apollot简述
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景;服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器;Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。可以很好的替代Spring Cloud Config
2.部署说明
使用Docker可以快速方便的部署Apollo,部署时将Apollo-configservice、Apollo-adminservice、Apollo-portal分别Docker化,以便提高其扩展性,其中MySQL并没有Docker化。
3.部署步骤
3.1.数据库初始化工作参见官网
3.2. 修改portal端口
由于是在一台机器上进行(伪)分布式部署Apollo,所以需要在修改portal/script/startup.sh中的端口,如果是在不同的机器上部署则可忽略
SERVER_PORT=8080 => SERVER_PORT=8070
3.3. 修改Eureka地址
adminservice启动时会将自己作为服务注册到configservice注册中心中,默认为http://localhost:/8080/eureka,所以需要将ApolloConfigDB.ServerConfig表中的
eureka.service.url字段修改为:http://apollo-configservice/8080/eureka,这样adminservice启动时就会在configservice容器中进行注册
(apollo-configservice为容器编排时configservice容器的服务名,同一网络中的容器可以使用容器服务名访问其他容器)
3.4. 修改Meta Service地址
Portal和Apollo Client都需要从Meta Service(即apollo-configservice本身)获取服务地址,然后通过服务地址直接访问,Meta Service地址修改在build.sh,
由dev_meta=http://localhost:8080修改为dev_meta=http://apollo-configservice:8080
3.5. 执行编译、打包
修改完以上配置后,在apollo/script/下执行命令:./build.sh
执行完后将configservice、adminservice、portal的target路径下apollo-xxx-0.9.0-SNAPSHOT-github.zip分别复制到configservice、adminservice、portal的src/main/docker目录,
因为在使用Dockerfile文件制作镜像进需要用这些包
3.6. 编写docker-compose.yml
使用Docker compose可以定义和运行多个Docke容器应用,所以使用Docker compose对configservice、adminservice、portal进行服务编排
version: "3"
services:
apollo-configservice: ##容器服务名
container_name: apollo-configservice ##容器名
build: apollo-configservice/src/main/docker/ ##Dockerfile路径
image: apollo-configservice:0.9.0 ##镜像名
ports:
- "8080:8080"
volumes:
- "/Users/mobin/opt/logs/100003171:/opt/logs/100003171" ##将/opt/logs/100003171目录挂载到宿主机的/Users/mobin/opt/logs/100003171方便在宿主机上查看日志
environment:
- spring_datasource_url=jdbc:mysql://xxx:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=xxx
- spring_datasource_password=xxx
apollo-adminservice:
container_name: apollo-adminservice
build: apollo-adminservice/src/main/docker/
image: apollo-adminservice:0.9.0
ports:
- "8090:8090"
depends_on:
- apollo-configservice
volumes:
- "/Users/mobin/opt/logs/100003172:/opt/logs/100003172"
environment:
- spring_datasource_url=jdbc:mysql://xxx:3306/ApolloConfigDB?characterEncoding=utf8
- spring_datasource_username=xxx
- spring_datasource_password=xxx
apollo-portal:
container_name: apollo-portal
build: apollo-portal/src/main/docker/
image: apollo-portal:0.9.0
ports:
- "8070:8070"
depends_on:
- apollo-adminservice
volumes:
- "/Users/mobin/opt/logs/100003173:/opt/logs/100003173"
environment:
- spring_datasource_url=jdbc:mysql://xxx:3306/ApolloPortalDB?characterEncoding=utf8
- spring_datasource_username=xxx
- spring_datasource_password=xxx
执行命令:docker-compose up -d
然后访问localhost:8080和localhost:8070即可
注意:
1. 如果是在mac环境下volumes的宿主机挂载路径必须是/Users/用户名/xxx,而不能是/xxx,如果将上述的volumes值改为如下将会报错
volumes: - "/opt/logs/100003172:/opt/logs/100003172"
参考资料
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhkhjh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01