java - 如何为 python 接收器编写 Spring Boot RabbitMQ 发送器?

标签 java spring-boot rabbitmq spring-amqp

我想编写一个应用程序,其中我需要一个生产者使用 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/

相关文章:

java - 表 * 没有名为 ** 的列

java - 如何从命令行停止 spring boot 服务?

node.js - 如何在 Heroku 上使用 Node.js 通信 Web 和 Worker dynos?

java - 如何使用 springfox 绕过 Swagger UI 中的授权

java - 是否可以将 Spring Boot 应用程序嵌套在另一个 Spring Boot 应用程序中?

java - rabbitmq 具有基于属性的自定义排序

java - 需要优化插入记录的查询

java - qtjambi - QApplication.initialize 在主方法之外

java - sessionFactory.getCurrentSession() 正在与 @Transactional 一起使用,但 sessionFactory.openSession() 不是