RabbitMQ,是否可以通过一种协议(protocol)发布并通过另一种协议(protocol)消费?

标签 rabbitmq amqp stomp

RabbitMQ支持多种协议(protocol),AMQP,MQTT,STOMP,......

例如,当使用 PHP 时,使用 STOMP 库进行发布会更容易,因为 PHP AMQP 库需要编译的 C 代码,并且如果不需要的话,设置起来有点麻烦。

在 JAVA 方面,Spring 上的 apache Camel 和 AMQP 非常简单。

如果消息代理是 RabbitMQ,是否可以设置一个队列,通过 STOMP 发布到该队列,然后通过 AMQP 消费,然后再次通过 AMQP 发布并通过 STOMP 消费?

最佳答案

是的,鉴于您已经安装了RabbitMQ's STOMP plugin,这应该可以工作。在您的 RabbitMQ 节点上。

该协议(protocol)仅定义客户端和服务器之间的通信,对消息本身没有影响。

您应该注意,使用 AMQP 以外的协议(protocol)很可能会带来限制和/或更差的性能。

还存在native PHP libraries对于不需要编译C代码的RabbitMQ。不幸的是,我无法告诉你哪一个是最好的,因为我是一个 Java 人;-)。

关于RabbitMQ,是否可以通过一种协议(protocol)发布并通过另一种协议(protocol)消费?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17832399/

相关文章:

stomp - 如何在 apache artemis 中安排消息

c# - 如何从 EasyNetQ 通知 AngularJS 应用程序

linux - 如何在 Amazon Linux 上安装 rabbitmq?

Django Celery Beat 管理员更新 Cron Schedule 定期任务未生效

java - rabbitmq AlreadyClosedException

java - 如果使用 spring + stomp + 带有rabbitmq的完整代理,如何自动删除队列

java - 在 TomCat 上没有配置任务执行器的 DirectMessageListenerContainer?

ruby - RabbitMQ/AMQP 未处理的 channel 错误 - NOT_FOUND

python - celery 工作人员拒绝反序列化 application/json 的不受信任内容类型

python - Stomp.py 如何从监听器返回消息