Tengine从Web代理服务器到分布式推送服务器
engine 负责和客户端进行长连接的保活、和应用服务器使用具体负载均衡算法进行短连接调度。 当前HTTP的推送解决方案 通常推送的诉求,是需要定时的往端上发送数据, 轮询 端上 定时发送请求来轮询获取业务数据。 这是最简单且最容易想到的手段,但往往也是在实际项目中最不可能使用的方案。因为其缺点非常明显: 1、较短间隔的轮询请求会导致 Server 端无端的处理无用的 QPS ,且 QPS 与端的数量成线性正比 2、较长间隔的轮询请求,其推送时效性无法保证 应用服务处理
即,Tengine 作为反向代理服务器只完成基本的转发能力,业务 Hold 住 HTTP 的请求,并且在必要时,对其进行 response 。 缺点很明显,应用需要自己维护该长连接的生命周期,而往往推送场景的使用者均是超大规模的终端设备,超大规模的长连接很明显会消耗大量应用机器资源。 HTTP2 推送(Server Push) 实际上 HTTP2 的推送功能指的是单个 request 有多个 response ,与我们长连接通道持续传输数据的需求不匹配。
这里贴上 RFC 对 Server Push 功能的介绍,在这里就不再展开了。 (编辑:阿坝站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |