3

我想扩展一个小型中间件系统以添加可靠的 FIFO 通信,并且代理之间的连接需要是 FIFO。目前中间件的通信层支持socket和RMI。但是我不认为套接字和 RMI 可以为消息对象提供 FIFO 排序。

有没有办法在 RMI 的消息对象级别上强制执行 FIFO 排序?

到目前为止,我得出的结论是使用 JMS 之类的东西作为通信层来保证 FIFO 排序。这有意义吗?还是有其他轻量级的替代品?

我认为另一种选择是使用消息编号并通过在套接字或 RMI 之上编写一个小协议来实现此排序,但这似乎需要大量工作并且需要一些专业知识来处理特殊情况。

4

1 回答 1

2

有几个可用的开源消息传递系统,例如RabbitMQActiveMQZeroMQHornetQ - 一旦你设置好它们,它们都非常容易使用。如果您只在线程之间而不是进程之间进行通信,那么您可以使用BlockingQueuePriorityBlockingQueue(我使用过的大多数系统使用 RabbitMQ/ActiveMQ/ZeroMQ/HornetQ 在进程之间进行通信,然后使用 [优先级]阻塞队列)。

于 2013-07-08T19:27:23.397 回答