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

posted on   落日峡谷  阅读(10518)  评论(0编辑  收藏  举报

编辑推荐:
· 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获取第前多少天的日期

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示