您的位置:首页 > 运维架构 > Docker

1 springboot项目集成使用disconf,基于docker环境

2017-10-16 14:03 1501 查看
disconf是一个开源的分布式配置中心(https://github.com/knightliao/disconf),此外还有携程开源的Apollo(https://github.com/ctripcorp/apollo),Apollo要比disconf功能更为丰富、强大一些。disconf比较简单明了,已经能适用于大部分场景了,使用起来比较简单。
我打算写篇文章来讲一些disconf在springboot项目中的应用。

1disconf在docker下环境搭建

网上教程很多,讲disconf原生的环境搭建,需要redis、zookeeper、nginx、tomcat、mysql这几个组件,还得各种配置,那是相当麻烦。
docker就是来简化这些配置的,一次配置后以后只需要带着docker镜像就能到处运行了,非常方便。网上有人已经配置好了disconf的docker环境配置,请看这几篇:
Docker搭建disconf环境,三部曲之一:极速搭建disconf   http://blog.csdn.net/boling_cavalry/article/details/71082610

Docker搭建disconf环境,三部曲之二:本地快速构建disconf镜像   http://blog.csdn.net/boling_cavalry/article/details/71107498

Docker搭建disconf环境,三部曲之三:细说搭建过程   http://blog.csdn.net/boling_cavalry/article/details/71120725

@author 博陵精骑 教程写的非常详细,仔细看后就能搭出环境了。
搭建完毕最终得到了disconf环境的docker-compose.xml文件,编排了各个组件的docker镜像
version: '2'
services:
disconf_redis_1:
image: daocloud.io/library/redis
restart: always
disconf_redis_2:
image: daocloud.io/library/redis
restart: always
disconf_zookeeper:
image: zookeeper:3.3.6
restart: always
disconf_mysql:
image: bolingcavalry/disconf_mysql:0.0.1
environment:
MYSQL_ROOT_PASSWORD: 123456
restart: always
disconf_tomcat:
image: bolingcavalry/disconf_tomcat:0.0.1
links:
- disconf_redis_1:redishost001
- disconf_redis_2:redishost002
- disconf_zookeeper:zkhost
- disconf_mysql:mysqlhost
restart: always
disconf_nginx:
image: bolingcavalry/disconf_nginx:0.0.1
links:
- disconf_tomcat:tomcathost
ports:
- "80:80"
restart: always
我主要针对一些可能有疑问的地方来解释一下。
在@博陵精骑教程的第三篇,细说搭建过程文章中,定制tomcat镜像这里,从上面的docker-compose.xml里也能看到,redis、zookeeper、mysql都是一些基本的配置,tomcat配置了几个link,nginx配置了tomcat的link和端口。



这个地方是配置服务依赖地址的,也就是告诉disconf的web端,各个服务的ip地址在哪里。原文里将mysql、redis、zoo的ip地址分别用mysqlhost、redishost001、zkhost三个字符串来表示,这是因为docker环境下ip地址是不确定的、随机分配的,只能通过添加docker环境链接的方式(link)来指定要依赖的服务的地址。这也就是docker-compost.xml里配置tomcat的几个links的原因。
如果本机装的有docker和docker-compose的话,就可以运行看看效果了,在docker-compost.xml文件所在目录,运行docker-compose up -d,然后看看docker的启动情况。



可以看到启动了6个容器,这就是disconf的web端完整的环境了,直接在本机访问localhost,就能看到disconf的界面了



账目密码都是admin,登录进去操作一下吧。
如果你是Windows,装不了docker-compose,或者你没有环境,可以使用daocloud(daocloud.io)提供的测试环境来试一下。



在集群管理里点添加主机,选择免费试用胶囊主机,然后你就拥有了一个能用2个小时的主机了,在查看主机里能看到该主机的外网ip地址,后面部署好环境后就可以使用外网ip来访问。



点击Stack,添加Stack,将上面的docker-compose.xml内容粘贴过来,选择主机为你刚添加胶囊主机,创建并部署。
等待各服务下载镜像并启动完毕后,访问胶囊主机的外网ip地址,就可以看到disconf的界面了。

2 总结

在docker下配置disconf环境主要的地方在于docker的link配置,因为各个依赖的服务ip地址是不确定的,需要添加到该容器的link来替代写死的ip地址。在各个application配置文件里,原本用ip的地方,现在用的都是容器的别名,如mysqlhost、zkhost等,然后在docker-compose.xml里,links的地方设置容器的别名。



以上就是disconf的web端基于docker的环境搭建,使用docker-compose.xml启动各个镜像即可,下一篇我们来创建客户端程序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: