记录使用Python从RocketMQ中实现数据消费及推送

背景:        

        工作需要使用Python3从rocketmq的队列里读取数据,相关文档也比较少,找到rocketmq python库在GitHub地址:https://github.com/apache/rocketmq-client-python

        官网表示基于rocketmq-client-cpp,支持Linux和macOS系统

系统环境:

        1、centos7

        2、python3

        3、RocketMQ 4.9.1

安装RocketMQ Python客户端

wget https://github.com/apache/rocketmq-client-cpp/releases/download/2.0.0/rocketmq-client-cpp-2.0.0-centos7.x86_64.rpm
sudo rpm -ivh rocketmq-client-cpp-2.0.0-centos7.x86_64.rpm
find / -name librocketmq.so
ln -s /usr/local/lib/librocketmq.so  /usr/lib
sudo ldconfig

安装rocketmq-client-python

pip install rocketmq-client-python

生产者:Producer

from rocketmq.client import Producer, Message

producer = Producer('生产者名字')
producer.set_name_server_address('127.0.0.1:9876')
producer.start()

msg = Message('你的TOPIC')
msg.set_keys('XXX')
msg.set_tags('XXX')
msg.set_body('XXXX')
ret = producer.send_sync(msg)
print(ret.status, ret.msg_id, ret.offset)
producer.shutdown()

消费者:PushConsumer

import time

from rocketmq.client import PushConsumer, ConsumeStatus


def callback(msg):
    print(msg.id, msg.body)
    return ConsumeStatus.CONSUME_SUCCESS


consumer = PushConsumer('消费者组名字')
consumer.set_name_server_address('127.0.0.1:9876')
consumer.subscribe('你的TOPIC', callback)
consumer.start()

while True:
    time.sleep(3600)

consumer.shutdown()

你可能感兴趣的:(rocketmq)