python -- (pynsq)
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)相关推荐
- Github配置(git+vscode+python+jupyter)
①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...
- 【实验楼】python简明教程
①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...
- 【Kaggle Learn】Python 5-8
五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...
- 【Kaggle Learn】Python 1-4
[Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...
- 使用python愉快地做高数线代题目~
今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...
- python 位运算与等号_Python 运算符
和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...
- python减小内存占用_如何将Python内存占用缩小20倍?
当程序执行过程中RAM中有大量对象处于活动状态时,可能会出现内存问题,特别是在对可用内存总量有限制的情况下. 下面概述了一些减小对象大小的方法,这些方法可以显著减少纯Python程序所需的RAM数量. ...
- python中排序英文单词怎么写_Python实现对文件进行单词划分并去重排序操作示例...
本文实例讲述了Python实现对文件进行单词划分并去重排序操作.,具体如下: 文件名:test1.txt 文件内容: But soft what light through yonder window ...
- python程序如何执行死刑图片_如何判断对象已死
已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...
最新文章
- LeetCode简单题之旋转字符串
- 第39章 数据的并发处理
- sklearn数据预处理-scale
- 技嘉主板万能网卡驱动_技嘉Z490系列主板来袭:16相供电/钽电容,堆料更进一步...
- Terraform学习总结(2)——Terraform 语法详解
- lightoj1027_数学求期望
- 多密钥ssh-key生成与管理
- UIViewController内存管理
- 【图像处理基础】基于matlab GUI图像局部放大【含Matlab源码 1016期】
- 记账用哪个软件比较好?
- 【Robo 3T】MongoDB可视化工具-- Robo 3T使用教程
- 34个漂亮的应用程序后台管理界面分享
- Windows快捷键盘
- 博客PV突破300万暨两次线上活动圆满结束
- 解析十大网络防骗术 全面防范网络欺诈
- 2022元宇宙共享大会|何超:“开放与兼容”唤起元宇宙新的思潮
- 【uni-app】模仿微信实现简易发送/取发语音功能
- ORA-12170:TNS:连接超时 详细解决方法
- 递推练习之费解的开关
- 支付宝积分兑换的扫地机器人好用_如何选购扫地机器人?