zoukankan      html  css  js  c++  java
  • 搭建基于consul,registrator,nsq的GO体系Docker开发环境

    原文及更多文章请见个人博客:http://heartlifes.com

    使用GO作为生产服务开发语言,避免不了与以下几大基础组件打交道,他们分别是:

    consul,registrator,nsq

    consul

    Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,通常用于docker 实例的注册与配置共享

    registrator

    Registrator 去除了需要手动管理Consul服务条目的复杂性,它监视容器的启动和停止,根据容器暴露的端口和环境变量自动注册服务。

    nsq

    NSQ是一个基于Go语言的分布式实时消息平台

    基于Docker容器的组件搭建

    以上组件都提供了官方docker镜像,我们只需要拉取镜像启动即可,以下提供组件使用命令,可供单机开发使用,复杂如consul组集群等,不在此讨论

    consul启动命令
    docker stop dev-consul
    docker rm dev-consul
    docker run -d --name=dev-consul -p 8400:8400 -p 8500:8500/tcp -p 8600:53/udp -e 'CONSUL_LOCAL_CONFIG={"bootstrap_expect":1,"datacenter":"dc1","data_dir":"/usr/local/bin/consul.d/data","server":true}' consul agent -server -bind=127.0.0.1 -client=0.0.0.0
    

    bind为服务发布地址,默认为网卡发布,否则可能只发布到容器内部ip

    registrator启动命令
    docker stop registrator
    docker rm registrator
    docker run -d --restart=always --name=registrator 
    -v /var/run/docker.sock:/tmp/docker.sock 
    gliderlabs/registrator:latest -ip yourip  consul://yourip:8500
    

    其中ip地址为该服务器ip地址,主动申明的目的在于防止registrator自动将127.0.0.1本地回环作为对外暴露的ip地址注册到consul上。

    nsq启动命令
    
    nsqlookupd:
    docker run -d --restart=always --name lookupd 
    -p 4160:4160 
    -p 4161:4161 
    nsqio/nsq /nsqlookupd
    
    nsqd:
    docker run -d --restart=always --name nsqd 
    -p 4150:4150 
    -p 4151:4151 
    nsqio/nsq /nsqd --broadcast-address=yourip --lookupd-tcp-address=yourip:4160
    
    nsqadmin:
    docker run -d --restart=always --name nsqadmin 
    -p 4171:4171 
    nsqio/nsq /nsqadmin --lookupd-http-address=yourip:4161
    
    
  • 相关阅读:
    SQL Server:创建索引视图
    Asp.Net常用函数
    SQL Server联机丛书:删除存储过程
    音乐知识全接触
    深入透析样式表滤镜
    有一天,爸妈会变老
    今天终于买到票啦~~
    今天,回到上海啦~~(附工作生涯回顾)
    十八问:怎么才是喜欢编程
    把旧光驱改CD播放机的方法
  • 原文地址:https://www.cnblogs.com/heartlifes/p/6971060.html
Copyright © 2011-2022 走看看