什么是连接发送者和接收者的良好设计模式?

时间:2012-03-06 20:24:07

标签: java design-patterns jetty

我正在尝试实现连接发送方和接收方以进行文件传输的逻辑,即发送方和接收方之间的握手。我想象的基本高级工作流程是......

Sender   : prep for transfer, create token, wait for receiver to connect

Receiver : access download URL using token, wait for sender to start sending

Sender   : confirm Receiver has connected / is waiting, send

Receiver : receive

* 注意:发送者只能有一个接收者,这意味着只有一个接收者可以“下载”发送者发送的文件

我正在使用Jetty Continuations对服务器进行长轮询,这使得处理异步事件变得容易,但我不确定如何处理设计方面。上述工作流程的优秀设计模式是什么,* 握手 *在发件人和收件人之间?

1 个答案:

答案 0 :(得分:2)

我的goto策略是使用JMS队列来解决这类问题。有很多选项,有各种各样的实现。您可以专门查找“Out Of Band”文件传输,这基本上就是您所描述的:从服务器传输令牌(消息),该服务器指向客户端要下载的文件。此外,这符合您的1接收器下载要求。可以将JMS队列配置为仅通过事务锁定为每个消息允许单个客户端。

不知道这是否真的能回答你的问题,但它可能是一个开始的地方。

修改

如果你是JMS的新手,一个好的起点就是搞乱ActiveMQ:

Homepage link

Doc referencing out of band file transfer 您可能希望实现自己的“BlobMessage”,或者只使用常规消息并处理通过它的URL。

Oracle JMS 1.1 Tutorial

JMS有很多可用的资源,因为它是一个旧标准。<​​/ p>

希望这有帮助!