一. 安装参考:http://nsq.io/deployment/installing.htmlhttp://www.baiyuxiong.com/?p=873 (推荐.)不推荐直接把官方的Binary Releases版本down下来扔bin目录.建议用“Building From Source”方式(看下面的步骤),这样可以把source下到$GOPATH/src里并同时把程序build到$GOPATH/bin里. (然后可以把这个bin目录添加到环境变量$sudo vi /etc/profile加一行:export PATH=$PATH:$GOPATH/bin.)步骤:(假设已经有golang环境)1.VPNFQ. (因为需要访问code.google.com)2.sudo chown -R xiaou $GOPATH #这个在搞golang环境的时候就设置过了.不搞的话,go get会报错.接下来才是真正的nsq安装步骤:3.go get github.com/kr/godep4.go get github.com/bmizerany/assert5.godep get github.com/bitly/nsq/...执行之后在$GOPATH/bin下会有很多可执行文件.二 部署与测试依次在不同终端执行这些命令:1.nsqlookupd2.nsqd --lookupd-tcp-address=127.0.0.1:41603.nsqadmin --lookupd-http-address=127.0.0.1:41614.curl -d "hello world 1" "http://127.0.0.1:4151/put?topic=test"5.nsq_to_file --topic=test --output-dir=F:\tmp --lookupd-http-address=127.0.0.1:41616.curl -d "hello world 2" "http://127.0.0.1:4151/put?topic=test"curl -d "hello world 3" "http://127.0.0.1:4151/put?topic=test"浏览器访问:http://127.0.0.1:4171/这些,nsqlookupd是枢纽。nsqd是接受和转发消息的服务。nsqadmin是多余的,一个查看服务状态web页面。nsq_to_file是消息的消费者。curl -d是以http的post方式向nsqd发出消息,即消息的生产者。可见,对于nsq消息分发系统来说,只有nsqlookupd+nsqd是必须的。图解:三 python写的 发送者和消费者这是nsq官方写的python库. 在这里:https://github.com/bitly/pynsq安装: pip install pynsq 测试:首先执行命令:1.nsqlookupd2.nsqd --lookupd-tcp-address=127.0.0.1:4160然后写py脚本并运行:(文档:https://pynsq.readthedocs.org/en/latest/writer.html)#消费者:import nsqdef handler(message): print message.body return Truer = nsq.Reader(message_handler=handler, nsqd_tcp_addresses=['127.0.0.1:4150'], topic='test_topic', channel='asdfxx', lookupd_poll_interval=15)nsq.run() #这run调用了tornado.ioloop.IOLoop.instance().start()#生产者:import nsqimport tornado.ioloopimport timedef pub_message(): def finish_pub(conn, data): print data writer.pub('test_topic', time.strftime('%H:%M:%S'), finish_pub)writer = nsq.Writer(['127.0.0.1:4150'])tornado.ioloop.PeriodicCallback(pub_message, 5000).start()nsq.run()
转载于:https://www.cnblogs.com/xiaouisme/p/3970086.html
相关资源:数据结构—成绩单生成器