NSQ 安装

1. 下载对应linux的版本
http://nsq.io/deployment/installing.html
2. 解压
tar -zxvf nsq-1.0.0-compat.linux-amd64.go1.*.tar.gz
3. 进入bin目录
cd nsq-1.0.0-compat.linux-amd64.go1.*/bin

NSQ 启动

4. 启动nsqlookupd(一个终端)
./nsqlookupd -tcp-address 0.0.0.0:4160 -http-address 0.0.0.0:4161
监听两个端口:
http: 4161 客户端用它来发现和管理。
tcp: 4160 nsqd 用它来广播
支持参数
-http-address="0.0.0.0:4161": <addr>:<port> 监听 HTTP 客户端
-inactive-producer-timeout=5m0s: 从上次 ping 之后,生产者驻留在活跃列表中的时长
-tcp-address="0.0.0.0:4160": TCP 客户端监听的 <addr>:<port>
-broadcast-address: 这个 lookupd 节点的外部地址, (默认是 OS 主机名)
-tombstone-lifetime=45s: 生产者保持 tombstoned 的时长
-verbose=false: 允许输出日志
-version=false: 打印版本信息
5. 启动nsqd(一个终端)
./nsqd -lookupd-tcp-address 127.0.0.1:4160 -broadcast-address=127.0.0.1 -msg-timeout=28800s
监听两个端口:
http: 4151
tcp: 4150nsqd 是一个守护进程,负责接收,排队,投递消息给客户端。
6. 运行 nsqadmin 管理(一个终端)
./nsqadmin -lookupd-http-address 127.0.0.1:4161
监听一个端口:
http:4171

7.访问监控网址 ---- http://127.0.0.1:4171/

NSQ 数据推送

8. NSQ中的生产者(python)

import json
import random
import requests
import timensqd_url = ["http://127.0.0.1:4151"]
url = nsqd_url[int(random.random() * len(nsqd_url))]a = 'aa'
b = "bb"def test_topic():topic = 'test_topic'msg = {"a": a,"b": b}resp = requests.post("%s/pub?topic=%s" % (url, topic), data=json.dumps(msg))if resp.status_code == 200 and resp.text == "OK":return Trueelse:return Falsedef test_topic_x():topic = 'test_topic_x'msg = time.strftime('%H:%M:%S')resp = requests.post("%s/pub?topic=%s" % (url, topic), data=msg)if resp.status_code == 200 and resp.text == "OK":return Trueelse:return Falsetest_topic()
test_topic_x()

9. NSQ中的消费者(python)

import nsqdef handler(message):print("message", message)print(type(message))body = message.bodyprint("body", body)print(type(body))data = eval(body.decode())print(data)print(type(data))a = data.get("a", '')b = data.get("b", '')print("a:", a)print("b:", b)return Truedef handler_x(message):print("第二个:", message)print("第二个:", message.body)return Truer = nsq.Reader(message_handler=handler, nsqd_tcp_addresses=['127.0.0.1:4150'], topic='test_topic', channel='asdf',lookupd_poll_interval=15)s = nsq.Reader(message_handler=handler_x, nsqd_tcp_addresses=['127.0.0.1:4150'], topic='test_topic_x', channel='asdfx',lookupd_poll_interval=15)nsq.run()  # tornado.ioloop.IOLoop.instance().start()

10. 运行消费者(出现两个主题)


11.运行生产者(Messages加一)

12. 运行生产者(python)结果

-----------------------------------------------------------------

-----------------------------------------------------------------

注:理论部分后续补充,如有问题请指出修正!!!

python -- (pynsq)相关推荐

  1. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  2. 【实验楼】python简明教程

    ①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...

  3. 【Kaggle Learn】Python 5-8

    五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...

  4. 【Kaggle Learn】Python 1-4

    [Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...

  5. 使用python愉快地做高数线代题目~

    今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...

  6. python 位运算与等号_Python 运算符

    和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...

  7. python减小内存占用_如何将Python内存占用缩小20倍?

    当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...

  8. python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...

    本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...

  9. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

最新文章

  1. LeetCode简单题之旋转字符串
  2. 第39章 数据的并发处理
  3. sklearn数据预处理-scale
  4. 技嘉主板万能网卡驱动_技嘉Z490系列主板来袭:16相供电/钽电容,堆料更进一步...
  5. Terraform学习总结(2)——Terraform 语法详解
  6. lightoj1027_数学求期望
  7. 多密钥ssh-key生成与管理
  8. UIViewController内存管理
  9. 【图像处理基础】基于matlab GUI图像局部放大【含Matlab源码 1016期】
  10. 记账用哪个软件比较好?
  11. 【Robo 3T】MongoDB可视化工具-- Robo 3T使用教程
  12. 34个漂亮的应用程序后台管理界面分享
  13. Windows快捷键盘
  14. 博客PV突破300万暨两次线上活动圆满结束
  15. 解析十大网络防骗术 全面防范网络欺诈
  16. 2022元宇宙共享大会|何超:“开放与兼容”唤起元宇宙新的思潮
  17. 【uni-app】模仿微信实现简易发送/取发语音功能
  18. ORA-12170:TNS:连接超时 详细解决方法
  19. 递推练习之费解的开关
  20. 支付宝积分兑换的扫地机器人好用_如何选购扫地机器人?

热门文章

  1. 如何恢复删除的文件夹
  2. iOS自定义转场动画(1)——自定义Push转场动画
  3. 流言蜚语中男人和女人之间的友情能坚持多久?
  4. 我的(码农)的知识体系结构
  5. 【Python】ItChat 微信控制包
  6. 运放电路中输入失调电压Vos及温漂-运算放大器
  7. 基于 Netbios 发现内网存活主机
  8. 李宏毅机器学习周报第二周
  9. Maven 镜像-阿里云
  10. java一句话木马_jsp一句话木马总结