接入层

以网游服务端的网络接入层设计为例,理解实时通信的技术挑战

天涯浪子 提交于 2019-12-16 16:10:07
本文参考并引用了部分腾讯游戏学院的相关技术文章内容,感谢原作者的分享。 1、前言 以现在主流的即时通讯应用形态来讲,一个完整的即时通讯IM应用其实是即时通信(英文简写:IM=Instant messaging)和实时通信(英文简写:RTC=Real-time communication)2种技术组合在一起的一整套网络通信系统。之所以以IM这个简写代称整个即时通讯软件,其实是历史原因了(因为早期的诸如ICQ这样的即时通讯工具,也就是文字聊天,并没有加入实时音视频这样的实时通信技术),对这个话题有兴趣的可以到网上查一查IM的发展历史。 以微信、QQ这样的完整即时通讯应用来说,回归到工具的本质,它主要包含了两种应用和技术: 1)广义的文字聊天:也就是我最常理解的各种聊天消息的传递,这部分的技术实现就是众所周之的IM通信(即Instant messaging); 2)实时音视频聊天:包括语音电话、视频聊天,这部分的技术实现,从网络通信的角度讲,就是实时通信(即Real-time communication)。 我们回忆一下:早几年前市面上主流的移动端IM——比如微信、QQ、以及现在满屏广告的网易易信、半死不活的小米米聊、已经入土的阿里来往、打擦边球的陌陌等,基本都没有或者很晚才加入实时音视频聊天功能(我们抛开技术因素之外的原因不议),原因不是不想做

阿里巴巴王发康:阿里七层流量入口负载均衡算法演变之路

大兔子大兔子 提交于 2019-12-10 14:55:28
2019 年 10 月 27 日,又拍云联合 Apache APISIX 社区举办 API 网关与高性能服务最佳实践丨Open Talk 杭州站活动,来自阿里巴巴的技术专家王发康做了题为《阿里七层流量入口负载均衡算法演变之路》的分享。本次活动,邀请了来自阿里巴巴、蚂蚁金服、Apache APISIX、PolarisTech、又拍云等企业的技术专家,分享网关和高性能服务的实战经验。 王发康,阿里巴巴 Tengine 开源项目 maintainer,负责阿里集团 WEB 统一接入层的开发及维护。 以下是分享全文: 前言 大家下午好,我叫王发康,来自阿里巴巴 Tengine 团队,目前主要负责阿里七层流量入口的开发与维护。今天演讲的主题是《阿里七层流量入口负载均衡算法演变之路》,主要从四个方面介绍: 统一接入架构介绍 负载均衡改造背景 VNSWRR 演进过程 效果及总结 从 2011 年至今,Tengine 在开源的道路上已走过第八个年头,感谢社区贡献者及广大用户的支持。下面先介绍下 Tengine 与 Nginx 的区别: 大家都知道 Nginx 的性能非常高,C1000K 都不成问题;同时,Nginx 的生态也比较丰富,不仅可以作为 HTTP 服务器,也可以作为 TCP 和 UDP,功能强大;它还可以和 K8s、Mesh、Serverless等其他生态打通,也包括 Lua、Js

天猫浏览型应用的CDN静态化架构演变

倖福魔咒の 提交于 2019-12-01 06:44:42
在天猫双11活动中,商品详情、店铺等浏览型系统,通常会承受超出日常数倍甚至数十倍的流量冲击。随着历年来双11流量的大幅增加,每年这些浏览型系统都要面临容量评估、硬件扩容、性能优化等各类技术挑战。因此,架构方面的重点在于,如何能够利用合理成本应对瞬间飙高的峰值请求,并确保活动完整周期中系统容量的可伸缩性、用户响应时间的稳定性,以及外部依赖系统出现问题时的高可用性。此外,作为最主要的页面流量承载体系,架构方面还需考虑防爬攻击、流控容灾等安全、稳定的需求,并综合衡量网络带宽、硬件成本、缓存效率等各方面要素,找准平衡点,从而达到以不变应万变的理想效果。 演进 为此,自2011年起,以天猫商品详情系统为代表,天猫浏览型系统在架构上的主要工作之一就是通过静态化技术实现了动静态信息分离、利用缓存技术存放静态化内容、利用少量动态数据异步加载填充。整个过程历经单机静态化、统一缓存接入,到2013年双11前彻底CDN化三个阶段(如图1所示),有效解决了缓存命中率、流量自然分布、系统扩容简化、用户端响应速度等关键问题。 图1 CDN化的三个阶段 目前,天猫浏览型系统最新使用的这套基于CDN的静态化架构,可以满足高可用持续伸缩的原始预期,并包含如下特性。 动静分离:HTML静态化和热点分离。 分布式缓存体系:利用CDN节点分布式缓存。 多级缓存机制:CDN两级+应用一级。 统一服务静态化集群。 一致性维持