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

标签 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

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

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

最佳答案

我的转向策略是使用 JMS 队列来解决此类问题。有多种实现方式和大量选项。您可能会专门寻找“带外”文件传输,这本质上就是您所描述的:从服务器传输指向客户端要下载的文件的 token (消息)。此外,这也符合您的 1 个接收器下载要求。通过事务锁定,JMS 队列可以配置为仅允许每条消息有一个客户端。

不知道这是否真的回答了您的问题,但这可能是一个起点。

编辑:

如果您是 JMS 的新手,那么尝试一下 ActiveMQ 是一个不错的起点:

Homepage link

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

Oracle JMS 1.1 Tutorial

有很多资源可用于 JMS,因为它是一个非常古老的标准。

希望这有帮助!

关于java - 连接发送者和接收者的良好设计模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9591265/

相关文章:

javascript - 这个图案有名字吗?

来自具有提前 SSL 终止的浏览器的 HTTP2

java - Maven 程序集插件 : add a file into a dependency jar

java - 在java中调试代码找不到源

javascript 模块导出模式

iOS - 多个 http 请求 - 在获取所有内容后做一些事情

java - 为什么 Maven 不在我的 jar 中包含 JSP 文件?

java - Jetty Gzip 处理程序 (JbossAs7)

java - 使用触摸屏运行 java swing

java - 需要建议 : Processing color image from camera; Android; OpenCV; NDK; C++