nsq-cluster¶ ↑
Easily start up a local NSQ cluster. This is great for testing.
# Start a cluster of 3 nsqd's and 2 nsqlookupd's. # This will block execution until all components are fully up and running. cluster = NsqCluster.new(nsqd_count: 3, nsqlookupd_count: 2) # Stop the 3rd nsqd instance and wait for it to come down. cluster.nsqd.last.stop # Start it back up again and wait for it to fully start. cluster.nsqd.last.start # Tear down the whole cluster. cluster.destroy
Flags for nsqd and nsqlookupd¶ ↑
Optionally, you can pass in flags for nsqd and nsqlookupd like this:
NsqCluster.new( nsqd_count: 1, nsqlookupd_count: 1, nsqd_options: { verbose: true }, nsqlookupd_options: { verbose: true } )
Send commands to nsqd¶ ↑
Available methods that map to {nsqd
‘s} HTTP endpoints.
# nsqd nsqd = cluster.nsqd.first # Publish a message to a topic nsqd.pub('stats', 'a message') # Publish multiple messages to a topic nsqd.mpub('stats', 'a message', 'a second message', 'last message') # Create a topic nsqd.create(topic: 'stats') # Create a channel for a known topic nsqd.create(topic: 'stats', channel: 'default') # Follow the same argument pattern for #delete, #empty, #pause, and #unpause # Get stats in JSON format nsqd.stats # Ping nsqd nsqd.ping # Get general information nsqd.info
Send commands to nsqlookup¶ ↑
Available methods that map to {nsqlookupd
‘s} HTTP endpoints.
#nsqlookupd nsqlookupd = cluster.nsqlookupd.first # Look up list of producers by topic nsqlookupd.lookup('stats') # Get a list of known topics nsqlookupd.topics # Get a list of known channels for a topic nsqlookupd.channels('stats') # Get a list of known nodes nsqlookupd.nodes # Delete a topic nsqlookupd.delete(topic: 'stats') # Delete a channel for a known topic nsqlookupd.delete(topic: 'stats', channel: 'default') # Ping nsqlookupd nsqlookupd.ping # Get general info nsqlookupd.info