tornado 如何处理大量文件传输请求
我有两台tornado服务器作为文件传输,文件从A服务器传输到B服务器或从B服务器到A服务器这样的一个双向传输。在传输端为了提高并发我用了线程池,但是接受端却要一个一个的接收文件。接收文件本身是一个耗时操作,阻塞了ioloop主循环。有没有什么办法能够提升传输效率,现在程序往往会因为文件过大而阻塞住后续请求。
我现在已经考虑替换tornado服务器,tornado并不适合我现在的使用场景,目标是使用fastapi+celery
回答:
传输文件是IO型任务,龙卷风的事件处理可以hold住呢,具体有啥问题?当然使用消息队列也没问题。
我的解决方法:有A、B两个服务,分别部署在不同机器,两个服务各自提供rest接口,相互调用,传输文件。
回答:
- 提高性能: 可以使用send_file/recv_file实现zero-copy.
- 阻塞住后续请求的问题不出意外是你的带宽不够, 你应该减少并发,限制传输速度,而不是提高并发.
以上是 tornado 如何处理大量文件传输请求 的全部内容, 来源链接: utcz.com/p/938194.html