京东咚咚架构演进:从1.0的简单粗暴到2.0的性能优化
88 浏览量
更新于2024-08-27
收藏 464KB PDF 举报
京东架构专家分享了京东内部的重要通讯工具——咚咚的发展历程。最初,随着京东为第三方卖家提供平台服务,咚咚应运而生,其1.0版本在2010年至2011年间上线,目标是实现快速业务部署。该版本采用了直接而简洁的技术架构,利用开源Mina框架实现TCP长连接接入,通过Tomcat Comet机制实现HTTP长轮询服务,消息投递则采用了一端存入Redis,另一端轮询的方式。
1.0版本的核心功能包括基础即时通讯(IM)功能,如用户接入、消息传递和状态同步,以及客服功能,即按轮询分配在线客服接待顾客。这种设计虽然易于理解和实现,部署简单,但存在显著的问题。由于频繁轮询Redis,导致消息延迟与资源消耗成反比,当在线用户增多时,系统的扩展性和性能受限,特别是在高峰时刻,轮询的高频率可能导致明显的人机交互延迟。
这个阶段正值京东技术平台从.NET转向Java的转型期,架构专家在此期间加入了京东,并负责咚咚产品的技术改进。面对客服业务的快速增长和1.0版本的不足,京东启动了2.0版本的演进。
2.0版本的成长主要集中在2012年,随着京东自营在线客服团队在成都建立,对服务质量有了更高的要求。1.0架构的性能问题尚未暴露到严重影响业务的程度,但随着客服需求的增加,原有的模型已经无法满足。京东认识到,必须解决轮询带来的延时和资源浪费问题,以便更好地支持自营和POP(开放平台)客服的高效运营。
在2.0阶段,架构专家可能采取了以下策略来优化咚咚:
- 优化消息处理机制,可能是引入更高效的队列系统,减少Redis的轮询压力,或者使用异步处理来提高响应速度。
- 分布式设计,通过负载均衡和集群技术,将客服分配任务分散到多台服务器,以提高处理能力和抗压能力。
- 数据库优化,可能调整了数据存储结构,减少查询延迟,或者使用缓存技术来加速请求处理。
- 使用微服务架构,将不同的功能模块拆分成独立的服务,以便于扩展和维护。
- 引入更加智能化的路由算法,根据客服负荷和用户需求动态调整客服分配策略。
这些技术改进旨在确保在用户数量激增的情况下,咚咚仍能保持稳定、高效的性能,从而提升京东的整体用户体验和业务竞争力。随着京东架构专家的持续努力,咚咚在京东的业务中扮演了愈发重要的角色,成为支撑京东电商业务顺畅运行的关键组成部分。
2019-03-20 上传
2022-11-15 上传
2022-06-27 上传
2015-05-22 上传
weixin_38678406
- 粉丝: 5
- 资源: 948
最新资源
- target-deep-learning:正在进行中的有关神经网络以进行图像异常检测的项目
- 易语言-置托盘图标和弹出托盘菜单程序
- 基于三菱PLC的煤质采样程序.rar
- FunAdmin V1.0 开源管理系统
- 自动CAR-Amit-
- describe-number:在Emacs中任意描述任意数量的数字
- simple_dashboard
- react-parallax:一个用于视差效果的React组件
- SaveVSUMLDiagramsToImageFile:针对Visual Studio 2013 Ultimate和Visual Studio 2015 Enterprise的MSDN“如何:将UML图导出到图像文件”的实现
- CS323-CollinEthanProject:Collin Umphrey和Ethan Monnin-CS323类项目
- 367DataScience
- qa-form-helper:用于 Web 表单 QA 的自动填充书签
- 马丁-福勒-分解第二
- LiteMap Toolbar-crx插件
- 经典三菱PLC带两伺服用于焊接机器程序.rar
- zipkin-rabbit-swagger