LoginSignup
5
1

More than 3 years have passed since last update.

NSQ環境をDockerで構築する(『Go言語によるWebアプリケーション開発』第5章)

Posted at

『Go言語によるWebアプリケーション開発』(Mat Ryer著、鵜飼文敏監訳、牧野聡訳; O'Reilly Japan)の「第5章 分散システムと柔軟なデータの処理」ではNSQというメッセージキューソフトウェアを利用して、Twitterのツイートを分析します。同書内ではNSQの構築をローカルマシンに直接インストールしているのですが、Dockerを利用して構築することも可能です。本記事では、Dockerを用いたNSQの構築手順について、簡単にまとめておきます。

前提

動作確認を行った環境は次の通りです。

  • Windows 10 Home
  • Docker ToolBox

また環境変数DOCKER_HOSTは次の通りに設定されています。

DOCKER_HOST=tcp://192.168.99.100:2376

手順

まずはNSQのイメージを取得します。

docker pull nsqio/nsq

次にnsqlookupdを起動します。ここではコンテナ名をgo-webapp-nsqlookupdとしています。

docker run -d                 ^
  --name go-webapp-nsqlookupd ^
  -p 4160:4160 -p 4161:4161   ^
  nsqio/nsq /nsqlookupd

最後にnsqdを起動させれば完了です(コンテナ名はgo-webapp-nsqd)。

docker run -d                               ^
  --name go-webapp-nsqd                     ^
  -p 4150:4150 -p 4151:4151                 ^
  nsqio/nsq /nsqd                           ^
  --broadcast-address=192.168.99.100        ^
  --lookupd-tcp-address=192.168.99.100:4160

わかりづらいのはnsqlookupdnsqdで別のコンテナを起動する必要があるということ。また--broadcast-address--lookupd-tcp-addressに指定する値もわかりづらいのですが、おおよそ上記の通りに設定すればOKです。

おまけ

同書ではnsq_tailを利用しているのですが、Dockerを利用している場合はnsq_tail用にコンテナを作成します。たとえばvotesというトピックを対象にする場合、以下のコマンドを実行します。

docker run --rm nsqio/nsq /nsq_tail          ^
  --lookupd-http-address=192.168.99.100:4161 ^
  -topic votes

参考

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1