使用执行处理程序上传netty?

时间:2018-06-06 17:11:01

标签: file-upload upload netty

我是netty的新手,我正在尝试使用 netty 4.1.11 来编写可以执行以下操作的上传服务器:

  1. 接受大小不超过10GB的文件的多部分POST上传请求
  2. 跟踪POST请求中的所有MixedAttribute
  3. on LastHttpContent,哈希上传的文件,执行一些业务逻辑,然后调用另一个关于上传的Web服务
  4. 根据来自Web服务的响应返回对客户端的响应,如果出现任何问题,则返回错误响应
  5. 我查看了官方的netty上传示例here,我试图通过添加一个新的私有变量“myUpload”来实现这一点来跟踪MixedAttribute的,当我看到LastHttpContent时,我调用了静态函数“processUpload”(它将使系统调用哈希我的文件然后调用另一个Web服务,并且可能是CPU密集型或需要一些时间),最后将函数的结果返回给客户端。

    我知道这可能不太理想,因为静态功能可能会阻塞。我还看到服务器忙时上传了大量不完整的文件。我认为我需要一个管道:

    • HttpRequestDecoder
    • HttpResponseEncoder
    • 某种MixedAttribute跟踪器
    • HttpUploadServerHandler
    • 某种池化执行处理程序,它接受最终的FileUpload和MixedAttributes,并调用我的函数

    我真的很感激任何指向以下问题的指针:

    1. 有人请告诉我,我是否走在正确的轨道上?
    2. 是否有执行处理程序池的示例,最好与上传处理程序一起工作?
    3. 假设我在具有128 GB RAM的32核机器上运行此操作,工作组和执行池大小应该如何最大化吞吐量?
    4. 这里有用的任何其他ServerBootstrap.option配置?目前我只将SO_BACKLOG设置为128。
    5. 提前非常感谢!

0 个答案:

没有答案