我正在考虑如何设计一个有些不寻常的 Netty 应用程序。基本上,有一个客户端发起请求。这个请求翻译成英语就是“递归获取目录 /whatever/ 下的许多小文件,并且我能告诉你关于这些文件的唯一信息就是它们的名称在 AAAAAAA.bin 和 CCCCCCC.bin 之间。”因此,服务器需要接受请求,开始在服务器上扫描一些目录,并开始快速地流式传输所有这些小文件。性能至关重要,但确保收到 AAAAAAA.bin 和 CCCCCCC.bin 之间的所有文件也同等重要。
因此,将客户端和服务器本身作为异步的设计是否是一个好主意呢?换句话说,客户端启动对话,发送请求,仅接收确认 UUID 令牌或类似令牌,然后服务器开始收集文件(可能每个线程一个),联系客户端,并传递一个单个文件和 UUID。我认为客户端可以定期询问服务器“你已经完成了匹配 UUID 令牌 /sometoken/ 的请求吗?”
我不太确定如何配置,因为客户端和服务器都将启动对话。或者,也许还有其他更好的设计想法?再一次强调,性能(从请求启动到完成所有文件传输的总时间)至关重要。谢谢!
因此,将客户端和服务器本身作为异步的设计是否是一个好主意呢?换句话说,客户端启动对话,发送请求,仅接收确认 UUID 令牌或类似令牌,然后服务器开始收集文件(可能每个线程一个),联系客户端,并传递一个单个文件和 UUID。我认为客户端可以定期询问服务器“你已经完成了匹配 UUID 令牌 /sometoken/ 的请求吗?”
我不太确定如何配置,因为客户端和服务器都将启动对话。或者,也许还有其他更好的设计想法?再一次强调,性能(从请求启动到完成所有文件传输的总时间)至关重要。谢谢!