前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1 springboot项目集成使用disconf,基于docker环境

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

作者头像
天涯泪小武
发布2019-01-17 11:42:29
7560
发布2019-01-17 11:42:29
举报
文章被收录于专栏:SpringCloud专栏

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镜像

代码语言:javascript
复制
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启动各个镜像即可,下一篇我们来创建客户端程序。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年10月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1disconf在docker下环境搭建
  • 2 总结
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档