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 的首頁
    image-20190917111708533

    nodes 詳情頁:
    image-20190917111738345

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查看


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM