50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

演讲预告:大规模运营 Redis 的经验 @京东

  • 2014-03-10
  • 本文字数:1611 字

    阅读完需:约 5 分钟

在 2013 年的 QCon 上海云计算分会场,京东云平台首席架构师刘海锋介绍了京东自主研发的分布式存储 – 京东文件系统(JFS),以及基于JFS 的统一数据中心存储策略。除了分布式存储之外,刘海锋的团队同时也负责开发一套分布式内存存储平台(RAM store platform),这套自主研发的快速分布式KV 存储系统可兼容Redis 数据类型、提供多租户统一服务、固有的集群模式、弹性可扩展、同步复制协议、常驻但不受限于内存、更强的持久性、更低的运维与硬件成本。

在2014 年的QCon 北京大会,刘海锋将根据他们开发这套系统的经验,分享大规模运营Redis 的经验,自研系统的设计思路,以及京东在数据存储方面的技术体系。InfoQ 中文站在会前对刘海锋进行了一次采访,邀请他对存储、Redis 等方向分享自己的观点。

嘉宾简介

刘海锋( @刘海锋 0011 ),京东系统技术部负责人、云平台首席架构师、以及京东架构委员会负责人。他领导存储、缓存、消息、服务框架团队,致力于打造坚实的系统技术平台,稳定支持京东业务的高速发展。

InfoQ:先谈谈你对存储系统、云存储、文件系统、数据库这一块当前发展趋势的看法吧。

刘海锋:数据量越来越大,业务需求也在增多。互联网业务后台需要不同的数据抽象——object/file/kv/tables……但多租户统一管理、服务化是重要的趋势。比如,给各个业务提供全托管的 RDBMS 服务、缓存服务、海量非结构数据存取服务,而不是上线一个业务就申请一些机器搭建存储。

InfoQ:用内存存储一般都是因为业务对读写性能有极高的要求。京东大规模内存存储平台现在主要服务于哪些业务?这些业务对读写的要求是什么样的?

刘海锋:非常多的在线业务都需要高速的缓存。比如每次京东购物下单、商品价格展示等等。

InfoQ:Redis 在官网上的定义是“高级 KV 存储系统”,特点在于速度快、数据结构丰富。你如何定义 Redis 这套系统?

刘海锋:高质量的开源软件。使用方便,速度快,数据类型丰富。用得最多的是 string, hashmap 两种。

InfoQ:基于 Redis 进行二次开发的过程中,有哪些需要避开的坑?有哪些是比较好的实践?

刘海锋:Redis 是高质量的开源软件。准确地说,是高质量的单机 KV 内存存储 server。但是要大规模应用到生产环境,需要做很多工作来满足公司业务需求。

最早是部署使用单个 Redis 实例,然后主从复制,集群分片,支持 presharding 的 Java 客户端,进而完善监控体系、配置中心,逐渐建设了一个平台来统一托管整个公司的 Redis 集群。

InfoQ:Redis 持久化如果持续进行磁盘写入会造成进程阻塞,这个问题如何解决?

刘海锋:RDB dump 其实是 fork 出一个子进程做的,写入并不会阻塞父进程。但是 fork 操作的执行开销较高,会 block 父进程不能及时响应请求。持久化方式是由各个业务自行选择的,有的选择没有持久化,有的选择 AOF,有的是 RDB 但是 dump 时间也是设置好的,比如凌晨几点等等。

InfoQ:是否研究过目前在 Alpha 版本的 Redis Cluster,有什么发现?

刘海锋:当然调研和测试过 Redis Cluster,现在还不是 production ready,所以我们在按照自己的方式搞定集群模式。

InfoQ:对于京东内存存储平台,下一步的开发计划是什么?

刘海锋:从今年年初开始,我们团队正在研发和实施京东的下一代内存存储平台 - JimStore。简单地说,JimStore 自主研发的分布式系统(dataserver 基于 Redis),实现多租户统一管理的、弹性扩展的 Redis 集群。

技术方面,分步骤做了一些事情:

通过分布式选举做精确的故障检测;自动的故障切换;增加磁盘存储,较冷数据会淘汰至磁盘,这样单实例就支持更大的数据量;自主研发集群模式,实现容量的透明扩展;整个平台多租户服务。

距第六届 QCon 全球软件开发大会(北京站)2014 开幕仅剩一个半月,大会演讲嘉宾已经几近确认完毕。大会的演讲内容在官网: http://www.qconbeijing.com ,以及 InfoQ 微博、微信公众帐号的最新播报: @InfoQ 、【infoqchina】不断更新。大会 9 折折扣期将在本月 26 日截止。如欲报名报请速点击报名页面

2014-03-10 00:115777

评论

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

Android中自定义ViewGroup

android 程序员 移动开发

Android仿QQ锁屏状态下消息提醒(震动+提示音)

android 程序员 移动开发

Android低版本上APP首次启动时间减少80%(一)

android 程序员 移动开发

Android命令Monkey压力测试,详解

android 程序员 移动开发

Android动画之补间动画

android 程序员 移动开发

android图片加载库Glide4使用教程(项目中如何快速将Glide3替换成Glide4)

android 程序员 移动开发

Android中自定义下拉样式Spinner

android 程序员 移动开发

Android事件分发机制三:事件分发工作流程

android 程序员 移动开发

Android体系化进阶学习图谱:我们究竟还要学习哪些Android知识?(某大厂内部资料

android 程序员 移动开发

Android刘海屏、水滴屏全面屏适配方案

android 程序员 移动开发

android之Fragment(官网资料翻译)

android 程序员 移动开发

Android岗高频面试题二集,看你能答出几题?(含答案

android 程序员 移动开发

Android修炼系列(十二),自定义一个超顺滑的回弹RecyclerView

android 程序员 移动开发

Android刘海屏、水滴屏全面屏适配详解

android 程序员 移动开发

Android厂商推送冲突了。。。

android 程序员 移动开发

android各种提示Dialog 弹出框(1)

android 程序员 移动开发

Android备忘录《内存泄漏》

android 程序员 移动开发

Android屏幕适配方案

android 程序员 移动开发

Android企业级实战-界面篇-2

android 程序员 移动开发

Android使用ViewPager实现图片轮播系列之四:手动滑动 + 左右箭头 + 删除数据

android 程序员 移动开发

Android内存泄漏问题

android 程序员 移动开发

消息队列RocketMQ应对双十一流量洪峰的“六大武器”

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列 流量

Android常见问题及开发经验总结(一)

android 程序员 移动开发

Android应用进程间通信之Messenger信使使用及源码浅析

android 程序员 移动开发

Android中关于Context的三言两语,源码强势分析带你了解Context!

android 程序员 移动开发

基于 Istio 的全链路灰度方案探索和实践

阿里巴巴云原生

阿里云 云原生 istio 灰度 全链路

android各种提示Dialog 弹出框

android 程序员 移动开发

Android属性动画——ObjectAnimator类及浮动菜单的实现

android 程序员 移动开发

Android开发 申请Mob的SMSSDK的短信验证码功能中获取MD5签名(更新中)

android 程序员 移动开发

基于 OpenYurt & EdgeX Foundry 的云边端一体化解决方案

阿里巴巴云原生

云原生 边缘计算 openyurt EdgeX Foundry

Android平台HTTPS抓包全方案

android 程序员 移动开发

演讲预告:大规模运营Redis的经验@京东_QCon_sai_InfoQ精选文章