我正在尝试决定如何设计一个我认为有一些不寻常要求的 Netty 应用程序。基本上有一个客户端发起请求。该请求翻译成英文为“递归地在 /whatever/ 目录下获取一堆小文件,关于这些文件,我只能告诉你它们的名称在 AAAAAAA.bin 和 CCCCCCC.bin 之间”。
因此,服务器需要接受请求,并开始扫描服务器端的一些目录,并开始快速将所有这些小文件流回。性能很重要,但确保我收到了 AAAAAAA.bin 和 CCCCCCC.bin 之间的所有文件也很重要。
那么让客户端和服务器本身基本上异步是一个好的设计吗?换句话说,客户端发起对话,发送请求,并简单地接收一个确认 UUID 令牌或其他东西,然后服务器开始收集文件(可能每个线程一个),联系客户端,并将单个文件传递给它使用 UUID?我认为客户端可以定期询问服务器“您是否完成了流式传输与 UUID 令牌/sometoken/匹配的我的请求?
我不太确定这将如何配置,因为客户端和服务器都将启动对话。或者,也许其他人有更好的设计理念?同样,性能(从请求发起到完成所有文件传输的总时间)至关重要。
谢谢!