Python:Rocketmq消息队列使用
rocketmq可以与kafka等一起使用,用于实时消息处理。
安装rocketmq:
pip install rocketmq [-i https://pypi.tuna.tsinghua.edu.cn/simple]
生产消息producer:
from rocketmq.client import Producer, Message import json producer = Producer('PID-test') producer.set_namesrv_addr('xxx.xxx.xxx.xxx:xxxxx') #rocketmq队列接口地址(服务器ip:port) producer.start() msg_body = {"id":"001","name":"test_mq","message":"abcdefg"} ss = json.dumps(msg_body).encode('utf-8') msg = Message('topic_name') #topic名称 msg.set_keys('xxxxxx') msg.set_tags('xxxxxx') msg.set_body(ss) #message body retmq = producer.send_sync(msg) print(retmq.status, retmq.msg_id, retmq.offset) producer.shutdown()
其中:
- 设置ip:port的位置:producer.set_namesrv_addr('xxx.xxx.xxx.xxx:xxxxx')
当只有单一服务器时,格式是上面这个;
当有多个服务器地址(集群模式)时,可以使用:producer.set_namesrv_addr("xxx.xxx.xxx.xxx:xxxxx,xxx.xxx.xxx.xxx:xxxxx,xxx.xxx.xxx.xxx:xxxxx")
不过以下这种方式本人测试不通过:producer.set_namesrv_addr(["xxx.xxx.xxx.xxx:xxxxx","xxx.xxx.xxx.xxx:xxxxx","xxx.xxx.xxx.xxx:xxxxx"])
- 如果使用pandas数据,pandas数据可以直接转换
some_df.to_json(orient='records').encode('utf-8'),然后放入body中发送。
消费消息consumer:
可以使用 PushConsumer 和 PullConsumer,同样来自 rocketmq.client。
# 使用PullConsumer时 from rocketmq.client import PullConsumer consumer = PullConsumer('CID_test') consumer.set_namesrv_addr('xxx.xxx.xxx.xxx:xxxxx') consumer.start() for msg in consumer.pull('topic_name'): print(msg.id, msg.body) consumer.shutdown() # PushConsumer与此类似 from rocketmq.client import PushConsumer
注:目前rocketmq库只支持linux和mac。
#
参考:
https://www.oschina.net/p/rocketmq-python
https://github.com/apache/rocketmq-client-python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2019-11-22 python读写mysql数据库
2019-11-22 python获取第前多少天的日期