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

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启动各个镜像即可,下一篇我们来创建客户端程序。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券