我想编写一个应用程序,其中我需要一个生产者使用 spring bootrabbitmq 发送消息,并且接收器是用 python 编写的。接收器部分很简单-
接收.py
#!/usr/bin/env python
import pika
import sys
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.exchange_declare(exchange='topic_logs',
exchange_type='topic')
result = channel.queue_declare(exclusive=True)
queue_name = result.method.queue
binding_keys = sys.argv[1:]
if not binding_keys:
sys.stderr.write("Usage: %s [binding_key]...\n" % sys.argv[0])
sys.exit(1)
for binding_key in binding_keys:
channel.queue_bind(exchange='topic_logs',
queue=queue_name,
routing_key=binding_key)
print(' [*] Waiting for logs. To exit press CTRL+C')
def callback(ch, method, properties, body):
print(" [x] %r:%r" % (method.routing_key, body))
channel.basic_consume(callback,
queue=queue_name,
no_ack=True)
channel.start_consuming()
如何为此编写 Spring Boot RabbitMQ 发送器代码?在那里需要申报哪些东西?请帮忙。
最佳答案
Spring Boot 首先是 Java 应用程序。
因此,您需要熟悉该语言。
选择是正确的:您确实可以从 Java 发送到 RabbitMQ 并从任何其他客户端的队列接收。
Spring Boot 为您提供了 RabbitTemplate
bean。因此,如果要发送故事,您只需注入(inject)这样一个 bean 并使用其 API 来发送:
@Autowired
RabbitTemplate rabbitTemplate;
...
this.rabbitTemplate.convertAndSend("topic_logs", binding_key, data);
参见Reference Manual了解更多信息。
关于java - 如何为 python 接收器编写 Spring Boot RabbitMQ 发送器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49513443/