写点什么

京东 11.11:电商狂欢背后的云基础设施服务

  • 2014-11-11
  • 本文字数:1794 字

    阅读完需:约 6 分钟

每年的 11.11 促销,都是对几大电商的软硬件平台服务能力的一次大考。在系统升级改造的过程中,京东商城引入了自己的云平台,将交易、订单、仓储、搜索等核心系统需要的一些基础设施抽象了出来,以服务的形式提供。面对峰值负载,很多压力都会传导到底层的云设施。京东的云平台是如何准备来应对云存储的呢?为此 InfoQ 采访了京东商城技术研发体系云平台首席架构师刘海峰。他负责的是包括存储、缓存和消息队列在内的基础系统,还有服务框架。

稳定的云平台

刘海峰首先介绍了发展历史,过去两年,京东以自主研发为主,开发了适合自己业务模式的存储系统——京东文件系统(JFS),并基于 JFS 向外提供私有云存储服务。最大的一个客户就是图片存储,京东的每一张图片都存在 JFS 平台上,另外还有订单、库房的报文等。自主研发使得系统更加可控,其可靠性、稳定性,都能很好地把握。JFS 采用了主动复制策略,保证绝对的强一致性,通过自己设计的复制算法,能够保证在机器故障、磁盘故障、甚至文件删除等问题存在时,数据都不会丢失。

缓存云也是云平台的核心产品之一。可以分为两个方面,一是纯缓存,为各个业务提供统一的缓存服务。如果电商的各个业务都自己设计和维护一套缓存,成本会非常高。而将全集团的缓存统一管理,通过细粒度的混合部署,完全弹性的、多租户的管理,实现弹性伸缩,极大地提高机器的使用效率,节省成本。

另一个是 Jimdb——基于内存与 SSD 的分布式缓存与高速 KV 存储服务,这在搜索系统、推荐系统等中都有应用。

可靠的消息队列

消息队列(MQ),或者叫消息平台,随着互联网业务的发展,微服务这种形式越来越流行,也就是一个模块做一件事情,模块之间尽量松耦合,模块之间用消息队列串联起来。可以认为消息队列是数据中心里面,各业务系统之间的管道。在京东,消息队列的开发经历了三个阶段。前两代是基于开源软件实现的,现在的产品是完全自主研发的 JMQ,在 11.11 之前已全面上线。商品相关的队列和订单相关的队列都依赖此服务,MQ 如果出现问题,会导致订单等购物行为出现故障。不过 11.11 目前运行比较平稳,能够做到消息绝对不丢失。

MQ 有一个很大的技术挑战,要能够快速地收,可靠地存。如果下游的消息消费者处理比较慢,系统就需要能够缓存大量消息。因为自己开发,这里可以做很多优化。举例而言,有的大队列可能是 1 个发送者,有 100 个消费者,很多开源系统可能会存 100 份。但这里通过优化,可以只存一份,消费者可以通过偏移量或指针去访问。从今天的效果来看,在这个方向上的技术投入非常值得。

微服务之得失

在服务框架方面,进行了微服务化改造。一个模块就做一件事,各个模块可降级、可监控、可分解。除了通过消息队列串联不同模块,还有些地方需要同步调用,京东大概有上万个服务接口,也接入了非常多的服务器,整个服务的注册、发现、互相之间的服务调用,再就是请求的序列化、反序列化,都是通过自主研发的服务框架实现的。

提到微服务,刘海峰也深入介绍了一些自己在这方面的感悟。他认为,微服务对互联网而言是很好的技术方向,对电商也是如此。将系统分为不同的服务模块,系统的韧性会更好,当然有得必有失。这种架构对基础设施的要求会更高,对软件底层平台的要求也更高。因为模块之间的通信有不同方式,比如通过直接调用、消息队列或存储系统,那如何跟踪系统的服务链条,也是一个问题。测试整个系统的峰值性能,抗压能力,也是个很大的挑战。

充分的 11.11**** 备战

谈到 11.11 的备战,刘海峰介绍说,首先一点就是需要把更多的工作放在平时,实际上技术是瓶颈,不是靠堆机器就能解决的,所以要靠平时的积累,设计好、做出好的系统。另外,在出现问题时,团队更加重要,要确保及时响应;而这时候也越来越体会到自主研发的好处,有任何问题,都可以快速地定位并修复,甚至是直接线上修复。只有从零写起才有这种感觉。

我们也谈到了京东云的路线图问题。刘海峰提到,目前还是小步快跑的模式,先抓住一些重点业务,应用起云服务,形成示范效应,再快速地规模化。京东也正在开发一个数据中心操作系统项目——JDOS,基本的事情是统一管理包含物理机、虚拟机和轻量级容器,配合自主研发的存储以及非常灵活的 SDN 互联。

InfoQ 后续还将发布对京东的运维、订单、仓储、搜索等业务负责人的访谈,敬请期待。

如果读者对京东云之前的演进情况感兴趣,可以查看刘海峰在 QCon 北京 2013 上的演讲:《京东文件系统与统一数据中心存储》。

2014-11-11 06:274598
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 148.3 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

云智一体,大模型服务的超级工厂

百度开发者中心

人工智能 云计算 nlp 大模型

解锁前端新潜能:如何使用 Rust 锈化前端工具链

京东科技开发者

泰开集团总会计师杜艳春:浅谈设备制造企业数智化之路

用友BIP

企业数智化

商业智能、数据分析和需求预测在现代零售管理中的关键运用

第七在线

Mybatis 拦截器实现单数据源内多数据库切换 | 京东物流技术团队

京东科技开发者

8种超简单的Golang生成随机字符串方式

华为云开发者联盟

开发 华为云 Go 语言 华为云开发者联盟

文件备份和同步软件推荐:Syncovery 最新激活版

胖墩儿不胖y

Mac软件 同步备份软件

IPQ6000 series IPQ6010 and IPQ6018: Explore infinite possibilities, when will your smart connection evolve?

wallysSK

企业数字化转型是什么?数字化转型的痛点又是什么?怎么转?从哪里转?转了有哪些好处?

天津汇柏科技有限公司

数字化转型峰会

【领先实践之离散制造行业】MOM全场景,助力光伏单晶行业降本增效

用友BIP

领先实践 光伏单晶行业

“数据要素×” 行动计划要做的几件小事,可都不是小事啊!

用友BIP

数据要素

龙蜥副理事长张东:潮蜥共引,繁荣系统软件生态 | 2023龙蜥操作系统大会

OpenAnolis小助手

操作系统 算力 系统软件 龙蜥社区 浪潮信息

对话式搜索:基于OpenSearch向量检索版+大模型的实践

百度开发者中心

人工智能 大模型 对话系统

赋能开发者实现LLMOps全流程

百度开发者中心

人工智能 大模型

测试环境使用问题及其优化对策实践

京东科技开发者

打造新一代云原生"消息、事件、流"统一消息引擎的融合处理平台

码界西柚

RocketMQ 云原生 消息队列 2024年第五篇文章

如何基于文心一言NLP大模型搭建生成式智能对话服务

百度开发者中心

人工智能 nlp 大模型

软件测试开发/全日制/测试管理丨测试用例设计

测试人

软件测试 自动化测试 测试开发 测试用例 用例设计

文心一言 VS 讯飞星火 VS chatgpt (174)-- 算法导论13.3 3题

福大大架构师每日一题

福大大架构师每日一题

京东11.11:电商狂欢背后的云基础设施服务_架构_臧秀涛_InfoQ精选文章