docker部署apollo分布式配置中心
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 https://github.com/ctripcorp/apollo/wiki/Apollo配置中心介绍
apollo组件介绍
apollo配置中心包括admin service,config service, config db 等服务组件,以及portal配置管理服务以及client客户端组件。组件逻辑关系如下图:
本文说明服务端部署过程。
下面是docker部署服务的具体步骤:
1. 构建docker镜像
使用项目https://github.com/huwsun/docker-apollo来构建容器镜像,本项目包含所有服务端组件,可按需启用多环境及各组件,详细配置说明见项目说明。
注意修改Dockerfile中的版本变量,获取指定版本。
#构建 docker build -t docker-apollo:latest . #创建tag docker tag docker-apollo registry.cloud.xxx.com/hcf/apollo:1.1.0 #推送到镜像仓库 docker push registry.cloud.xxx.com/hcf/apollo:1.1.0
2. 本地测试镜像
按照创建数据库指导部署数据库,目前仅支持mysql。
如下命令,启动portal面板,以及dev环境的服务组件,其中8180为configservice端口,8190为adminservice端口
docker run -e DEV_DB='jdbc:mysql://1.1.1.1:3306/ApolloConfigDB?characterEncoding=utf8' \ -e DEV_DB_USER='user' \ -e DEV_DB_PWD='123' \ -e DEV_ADMIN_PORT=8190 \ -e DEV_CONFIG_PORT=8180 \ -e PORTAL_DB='jdbc:mysql://1.1.1.1:3306/ApolloPortalDB?characterEncoding=utf8' \ -e PORTAL_DB_USER='user' \ -e PORTAL_DB_PWD='123' \ -e JAVA_OPTS='-Deureka.service.url=http://localhost:8180/eureka/' \ -p 8170:8170 \ -v /opt/logs:/opt/logs --name apollo docker-apollo
3. Rancher部署
如下图,如果需要公网访问,需要将所有服务端口全部开放。环境变量配置参考本地测试配置
外网访问需要额外配置公网IP,如下
4. 客户端使用
项目中引入依赖:
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.1.0</version> </dependency>
启用bootstrap.yml配置如下,app.id为apollo的应用项目名称,在portal中进行配置,config-service-ip:port为configservice对应的ip及端口
app: id: contract apollo: bootstrap: enabled: true meta: http://config-service-ip:port
详细说明及api见Java客户端使用指南
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Docker学习~DockerFile指令详解
在我们学习容器中我们往往都会用到DockerFile这个文件,在前两篇的文章中,我们也着重的使用了DockerFile这个文件用来构建我们使用的容器,这样可以用来构建我们自己需要的容器,方便使用和操作。今天我们就具体的来学习下DockerFile需要用到的命令参数。 从途中我们可以看到这些需要我们使用的命令。现在我们具体的来参考下怎么实现。 FROM 该命令必须放置在我们命令的第一层,首先就会使用该命令。当然一个DokcerFile中存在多个镜像时,可以多次使用FROM命令 语法: FROM <image> /FROM <image>:<tag> //tag没有的话默认是latest FROM ubuntu MAINTAINER 用来制定维护者信息,也可以是作者信息 语法: MAINTAINER <name> MAINTAINER dockerUser fqi@email.com RUN 用来运行我们所需要的指令。该命令是构建容器时运行的命令以及提交命令行的结果 语法: RUN command //该命令是 直接跟shell命令个 在li...
- 下一篇
推荐3款 Docker 认证的实用免费插件,轻松管理您的网络!
出品丨Docker公司(ID:docker-cn)编译丨小东每周一、三、五晚6点10分 与您不见不散! Docker 认证技术项目(Docker Certified Technology Program)是为了帮助合作伙伴和客户识别出在质量、协作支持以及合规性等方面表现出色的容器和插件。Docker 认证项目通过 Docker 以及发行商的支持为组织提供了一种在 Docker Enterprise 容器平台上运行可信任软件和组件的简便方法。 在这篇文章中,我们将着眼于 Docker 的网络插件。长期以来,网络一直是企业云和数据中心的一个垂直领域。正如 Docker Enterprise 的首要目标是尽可能简化容器的部署和操作,同样的目标也适用于使 Swarm 网络。无论是在客户数据中心还是分布在多个云中,这个目标都是适用的。在某些情况下,Docker Enterprise 通过提供内置插件解决了客户问题,而在其他情况下,用户的需求可以通过广泛的 Docker 生态系统的创新来解决。这些解决方案经过 Docker 以及合作伙伴公司的验证,并集成到一个无缝的支持管道中,为客户提供全方位的支...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Red5直播服务器,属于Java语言的直播服务器