This page has moved to

Click here if you are not redirected.

Explore NATS Queueing

NATS supports a form of load balancing using queue groups. Subscribers register a queue group name. A single subscriber in the group is randomly selected to receive the message.


Go and the NATS server should be installed.

1. Start the NATS server


2. Clone the repositories for each client examples

go get
git clone
git clone

3. Run the Go client subscriber with queue group name

cd $GOPATH/src/
go run nats-qsub/main.go foo my-queue

4. Install and run the Node client subscriber with queue group name

npm install nats
cd nats.js/examples
node node-sub --queue=my-queue foo

5. Install and run the Ruby client subscriber with queue group name

gem install nats
nats-queue foo my-queue &

6. Run another Go client subscriber without the queue group.

cd $GOPATH/src/
go run nats-sub/main.go foo

7. Publish a NATS message using the Go client

cd $GOPATH/src/
go run nats-pub/main.go foo "Hello NATS!"

8. Verify message publication and receipt

You should see that the publisher sends the message: Published [foo] : 'Hello NATS!'

You should see that only one of the my-queue group subscribers receives the message. In addition, the Go client subscriber not in the my-queue group should also receive the message.

9. Publish another message

go run nats-pub/main.go foo "Hello NATS Again!"

You should see that a different queue group subscriber receives the message this time, chosen at random among the 3 queue group members.

results matching ""

    No results matching ""