rocketmq5.x创建只能选择tcp接入点
rocketmq5.x没有对应的python sdk
rocketmq4.x有python sdk,但是需要http endpoint
请问,使用python连接rocketmq5.x进行收发消息,有什么推荐的方法?
rocketmq5.x创建只能选择tcp接入点
rocketmq5.x没有对应的python sdk
rocketmq4.x有python sdk,但是需要http endpoint
请问,使用python连接rocketmq5.x进行收发消息,有什么推荐的方法?
在RocketMQ 5.x版本中,只提供了TCP接入点,而没有提供HTTP接入点。因此,如果使用的是RocketMQ 5.x,并且需要使用HTTP协议进行通信,那么需要自己实现一个HTTP客户端来连接RocketMQ。
以下是使用Python连接RocketMQ 5.x的步骤:
pip install rocketmq-client
CopyCopy
producer = DefaultMQProducer(“producer_group”)
producer.setNamesrvAddr(“127.0.0.1:9876”) # 设置NameServer地址
producer.start()
CopyCopy
message = Message(“TopicTest”, “TagA”, “Hello RocketMQ ” + str(i))
producer.send(message)
CopyCopy
consumer = DefaultMQPushConsumer(“consumer_group”)
consumer.setNamesrvAddr(“127.0.0.1:9876”) # 设置NameServer地址
consumer.subscribe(“TopicTest”, “*”) # 订阅主题和标签
consumer.start()
CopyCopy
while True:
msg = consumer.receive()
if msg:
print(“Received message: ” + msg.getBody())
else:
continue
CopyCopy
在上面的代码中,需要注意以下几点:
在使用Python发送接收RocketMQ消息时,你可以选择以下几种方式:
可靠同步发送:这种方式主要运用在比较重要一点消息传递/通知等业务。例如,public class SyncProducer { public static void main…。
可靠异步发送:这种方式适用于需要异步处理消息的场景。例如,你可以使用线程池或者协程池来实现异步发送消息。
单向发送:这种方式适用于只需要发送消息而不关心消息是否被成功接收的场景。例如,你可以使用Python的内置库
socket
来实现单向发送消息。对于RocketMQ5.x版本的Python SDK,目前官方并没有提供。你可以选择使用RocketMQ4.x版本的Python SDK,然后通过HTTP Endpoint连接到RocketMQ5.x的服务器。需要注意的是,这种方式可能会增加一些网络延迟。
另外,你也可以考虑使用其他的消息队列中间件,如Kafka、RabbitMQ等,它们都有相应的Python SDK可以使用。
根据您的描述,您可以考虑以下方案来使用Python连接到RocketMQ 5.x进行收发消息: