The following steps will run a small NSQ cluster on your local machine and walk through publishing, consuming, and archiving messages to disk.
follow the instructions in the INSTALLING doc.
in one shell, start nsqlookupd
:
$ nsqlookupd
in another shell, start nsqd
:
$ nsqd --lookupd-tcp-address=127.0.0.1:4160
NOTE: if your system hostname does not resolve to 127.0.0.1
then add --broadcast-address=127.0.0.1
in another shell, start nsqadmin
:
$ nsqadmin --lookupd-http-address=127.0.0.1:4161
publish an initial message (creates the topic in the cluster, too):
$ curl -d 'hello world 1' 'http://127.0.0.1:4151/pub?topic=test'
finally, in another shell, start nsq_to_file
:
$ nsq_to_file --topic=test --output-dir=/tmp --lookupd-http-address=127.0.0.1:4161
publish more messages to nsqd
:
$ curl -d 'hello world 2' 'http://127.0.0.1:4151/pub?topic=test'
$ curl -d 'hello world 3' 'http://127.0.0.1:4151/pub?topic=test'
to verify things worked as expected, in a web browser open http://127.0.0.1:4171/
to view
the nsqadmin
UI and see statistics. Also, check the contents of the log files (test.*.log
)
written to /tmp
.
The important lesson here is that nsq_to_file
(the client) is not explicitly told where the test
topic is produced, it retrieves this information from nsqlookupd
and, despite the timing of the
connection, no messages are lost.