具有同步传递的Message Broker

时间:2015-04-24 09:09:17

标签: message synchronous mqtt broker

我们正在实施(或更多地重新实现)分布式软件系统。我们所拥有的是不同的进程(可能在不同的计算机上运行),这些进程应该相互通信(让我们称之为这些客户端)。我们不希望它们彼此直接通信,而是使用某种消息代理。

由于我们希望自己避免实现消息代理,因此我们希望使用现有的实现。但我们没有找到完全满足我们要求的协议或系统。

MQTT及其发布 - 订阅机制似乎很好,甚至可以用于点对点通信(某些特定主题仅由某些客户端订阅)。 但它(如JSM,STOMP等)异步。发件人向代理发送消息,但不知道它是否已经发送给它的收件人。我们希望发件人获知成功发送或超时(当没有人收到消息时)。

是否有一些提供此类同步消息传递功能的协议/实现? (如果异步交付也可能会很好)

1 个答案:

答案 0 :(得分:0)

默认情况下,消息传递(通常)是异步的。 你可以考虑RabbitMQ,它包含以下功能:

  1. Publisher-confirms(以异步方式): http://www.rabbitmq.com/blog/2011/02/10/introducing-publisher-confirms/

  2. 交易提交: https://www.rabbitmq.com/semantics.html

  3. 消息TTL(处理超时) https://www.rabbitmq.com/ttl.html

  4. 使用此功能,您可以处理超时情况和成功交付。

    如果这还不够,可以使用RPC: https://www.rabbitmq.com/tutorials/tutorial-six-java.html

    如果您需要更多信息,请与我们联系。