docker 部署 nsq

这篇文章主要介绍如何使用docker部署 nsq 组件
环境准备
本文基于一台 ubuntu 虚拟机试验
docker 安装
docker 安装方式
使用docker version 命令检查 docker 是否安装成功
docker-compose 安装
apt-get install docker-compose
nsq docker 部署
nsq 主要有三个组件: nsqlookupd, nsqd, nsqadmin。这三个组件都包含在 nsqio/nsq 镜像中, 每一个组件都可以通过指定组件名的方式去启动,启动命令的形式如下:
docker run nsqio/nsq /command
拉取基础镜像 docker pull nsqio/nsq
docker部署
nsqlookupd
docker run --name lookupd -p 4160:4160 -p 4161:4161 -d nsqio/nsq /nsqlookupd
说明:
- -p 是映射端口
- -d 是后台运行容器
- /nsqlookupd 就是启动命令
nsqd
- 首先通过
ifconfig获取虚拟机的 ip, 以本机 ip 172.16.49.92为例 - nsq 的启动命令如下:
docker run --name nsqd -p 4150:4150 -p 4151:4151 -d nsqio/nsq /nsqd --broadcast-address=172.16.49.92 --lookupd-tcp-address=172.16.49.92:4160 - 持久化保存 nsqd 数据 使用/data 参数:
--data-path=/data
nsqadmin
docker run -d --name nsqadmin -p 4171:4171 nsqio/nsq /nsqadmin --lookupd-http-address=172.16.49.92:4161
访问 http://172.16.49.92:4161 就可以查看 nsq系统详情了
测试验证
curl 172.16.49.92:4161/nodes调用 lookupd 接口查看节点信息
json {"producers":[{"remote_address":"172.17.0.1:46290","hostname":"6c684bee454b","broadcast_address":"172.16.49.92","tcp_port":4150,"http_port":4151,"version":"1.2.0","tombstones":[],"topics":[]}]}curl -d 'hello world ' 'http://127.0.0.1:4151/pub?topic=test'生产一个消息,同时也创建了一个topic。
调用 lookupd 的 /topics 接口返回json {"topics":["test"]}通过
docker logs containerID查看各个组件的日志详情直接访问 http://172.16.49.92:4171 就可以访问 nsqadmin 的首页

nodes 详情页:

docker-compose 部署
docker-compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具.
要使用 dokcer-compose 部署,我们首先需要编写 yaml 文件, docker-compose.yml 文件如下:
version: '3'
services:
nsqlookupd:
image: nsqio/nsq
command: /nsqlookupd
ports:
- "4160"
- "4161"
nsqd:
image: nsqio/nsq
command: /nsqd --lookupd-tcp-address=nsqlookupd:4160
depends_on:
- nsqlookupd
ports:
- "4150"
- "4151"
nsqadmin:
image: nsqio/nsq
command: /nsqadmin --lookupd-http-address=nsqlookupd:4161
depends_on:
- nsqlookupd
ports:
- "4171"
定义了三个服务模块: nsqlookupd, nsqd, nsqadmin. 具体的 docker-compose 使用可以参考: docker-compose 使用
docker-compose up -d 启动nsq 所有组件
docker-compose ps 查看各个组件的运行详情
docker-compose logs 查看组件日志
其他常用命令可以通过 docker-compose --help查看
docker 部署 nsq的更多相关文章
- ASP.NET Core开发-Docker部署运行
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行.我们将ASP.NET Core 部署在Docker 上运行. 大家可能都见识过Docker ,今天我们就详细 ...
- Docker部署Hadoop集群
Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...
- 程序开发使用docker部署
我们公司自己研发了一套 grand-line 系统,使用 docker 来部署项目. 我是第一批小白鼠,一开始网络差,build 一次要半个小时,连接进入 web shell 也很慢,部署一个微信项目 ...
- 我使用celery以及docker部署遇到的问题
首先我本机测试时没有问题的,但是在线上docker中,任务一直显示 "Sending due task".超时的任务是 django orm update 操作,本地不会出现这样的 ...
- Docker部署SDN环境
2014-12-03 by muzi Docker image = Java class Docker container = Java object 前言 5月份的时候,当我还是一个大学生的时候,有 ...
- 在生产环境使用Docker部署应用
导读 Docker现在越来越流行,但是真正在生产环境部署Docker还是个比较新的概念,还没有一个标准的流程.作者是ROR的程序员,作者结合平时的部署经验,联系Docker的特点,向大家分享了其在生产 ...
- Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈
版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98 来源:腾云阁 https://www.qclou ...
- NET Core Docker部署
NET Core Docker部署 前言 在前面文章中,介绍了 ASP.NET Core在 macOS,Linux 上基于Nginx和Jexus的发布和部署,本篇文章主要是如何在Docker容器中运行 ...
- 我使用 Docker 部署 Celery 遇到的问题
问题1 - Sending due task 本机测试时没有问题的,但是在线上 docker 中,任务一直显示 "Sending due task".超时的任务是 Django O ...
随机推荐
- 关于System.Reflection.TargetInvocationException 异常
什么是TargetInvocationException 由通过反射调用的方法引发的异常. 继承 Object Exception ApplicationException TargetInvocat ...
- Call to undefined function imagecreatefromjpeg() 让GD支持JPEG格式的图片扩展
安装扩展支持jpeg格式: 第一步:首先下载文件: 版本v8: wget http://www.ijg.org/files/jpegsrc.v8b.tar.gz 版本v9: wget http://w ...
- HDU 1542.Atlantis-线段树求矩形面积并(离散化、扫描线/线段树)-贴模板
好久没写过博客了,这学期不是很有热情去写博客,写过的题也懒得写题解.现在来水一水博客,写一下若干年前的题目的题解. Atlantis Time Limit: 2000/1000 MS (Java/Ot ...
- 最大の和(洛谷 AT2412)
题意 读入n个整数的数列a1,a2,…,an和正整数k(1<=k<=n),请输出连续排列的k个整数的和的最大值 输入 第一行是正整数n(1<=n<=100000)和正整数k(1 ...
- Kubernetes Pod概述
Pod简介 Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程. 一个Pod封装一个应用容器,Pod代表部署的一个单位. Pods提供两种共享资源: ...
- HBase(一) —— 基本概念及使用
一.安装&启动 下载 https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.1.8/ 快速开始文档,HBase2.1.8 http://hba ...
- 菜鸟教程C++(一)
一.C++基本语法 C++程序可以定义为对象的集合,这些对象可以通过调用彼此的方法进行交互. 对象:对象具有状态和行为.例如:一只狗的状态:颜色.名称.品种等,行为:摇动.叫唤等.对象是类的实例. 类 ...
- 第09组 Beta冲刺(4/4)
队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...
- CentOS 7 安装 MySql8.0
1-配置 Yum 库 rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm 2-安装 MySql 2.1 ...
- 快速激活Navicat Premium 12
Navicat Premium 12是一套数据库开发管理工具,支持链家MySQL.Oracle.SQL server等多种数据库,快速便捷创建.管理和维护数据库 一.下载 https://www.na ...