演进:Tengine从Web代理服务器到分布式推送服务器
Tengine实现方案 一、Tengine 自带 中心 化存储 Tengine 对 每个 TCP 连接生成一个 key(也可以使用请求 Header 等作为 Key ),在中心化存储中保存 key 和对应机器ip的映射信息。应用只需要往Tengine集群的任意一台机器推送数据,由 Tengine 来做分布式路由。下图从推送角度描述了 Tengine 如何工作。 1、应用往 Tengine 集群随机一台机器推送,推送是携带对应的的 Key 以表示自己期望推送至哪个连接 2、Sc 收到 推送消息,在 Tair 中查找对应请求由哪台 Tengine 机器维护,例如查找到该推送目的连接在 Sb 。 3、Sc 转发到 Sb。 4、Sb 收到后,找到对应的客户端连接,将数据推送至客户端。 应用可以是用 vipserver 随机查找 Tengine 机器, Tengine 也可以申请一个 vip/slb ,供业务访问,依靠 vip/slb 的负载均衡能力,随机访问 Tengine 。 二、支持流式传输 通常,一个长连接希望能够接受多个推送消息,而不是一个推送消息结束后再次新建, Tengine 依托其丰富的 HTTP 处理能力,使用 multipart/form-data ,是的推送数据拥有明确的 boundary ,多次推送数据都能有明确的分界线,客户端只需单个连接,就能获得多次推送数据。 三、多协议支持 Tengine 本身支持多种协议, 无论客户端发起的是 HTTP 还是HTTP2,均能继承上述推送功能。 四、高性能 Tengine 本身作为代理服务器,转发性能是业界的标杆,我们在Tengine转发流程加入了 中心化存储能力使得 Tengine 有了分布式路由的功能。 (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |