java - RabbitMQ 实现细节

标签 java rabbitmq message-queue

我最近观看了一个关于 RabbitMQ 如何工作的精彩演示,它对整个 AMQP 实现的工作原理很感兴趣。

我正在考虑将它用于一个项目,但我想知道以下问题的一些答案:

1) 消息的代理和生产者是否可以在同一个地方?我确实了解 RabbitMQ 允许使用虚拟主机,所以这样的事情是可能的,对吗?

2) RabbitMQ 可以通过两个不同的子网传输消息吗?我知道它可以通过 LAN 或 WAN 进行传输,但是通过两个子网进行传输有多容易? (这里的一个答案实际上是桥接它们)。

3) 关于问题 1,如果原始代理出现故障,将代理功能故障转移到另一个位置有多困难?

4) 我确实了解 RabbitMQ 实际上提供了不同类型的消息传输。其中之一是扇出类型,或多或少类似于广播 Action 。是否有可能拥有相反类型的东西。这意味着您有多个生产者和多个队列,所有队列都传输到单个消费者?

最佳答案

1)消费者/生产者在哪里并不重要,只要他们能够到达(访问IP:端口)代理即可。虚拟主机与此无关。

2)与第一个答案或多或少相同,RabbitMQ 我们使用网络并且不知道它处于哪种网络中;也不需要知道或关心。

3)故障转移很简单,找rabbitmq clusterhigh availability 。对于客户,您必须自己照顾(如何重新连接等)。

4) 是的,广播是可能的,你应该有一个 look at tutorials以及有什么样的交流。 编辑 正如 zapl 在评论中指出的那样,您也可以执行广播的逆操作。

关于java - RabbitMQ 实现细节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37632767/

相关文章:

ubuntu - 如何增加rabbitmq的erlang进程?

java - 如何在 Android 中暂停线程的消息队列?

java - Amazon SQS 在这种情况下如何工作?

java - 为什么activemq会自行打开套接字

java - 神经元结果有点偏差

java - 十六进制的枚举类型使用 Java 返回错误的值?

java - 使用Bouncy CaSTLe从android中提取证书信息

java - 使 Java 应用程序可通过 Web 浏览器使用

docker - Dockerfile vs Docker运行

java - 使用 Spring Cloud Stream 将 RabbitMQ 消费者绑定(bind)到现有队列