您好、欢迎来到现金彩票网!
当前位置:秒速快3 > 数据高速缓存 >

解读JIMDB 京东分布式缓存与高速KV存储

发布时间:2019-06-07 05:01 来源:未知 编辑:admin

  】2015年第六届数据库大会在北京新云南皇冠假日酒店开幕,本次大会以《数据库技术探索和价值发现》为主题,展开了为期三天的技术盛宴。下午的专场中,来自京东的高级架构师袁航给我们带来了《深入解读JIMDB—京东分布式缓存与高速NoSQL服务》的主题演讲,从技术的演进以及解决实际问题的角度做了详细的阐述。

  京东作为中国电子商务领域的重要一员,已经被广为熟知。但是,京东也是不折不扣的技术型公司,通过技术为用户带来便捷用户体验。例如,针对电商业务中海量小文件、大文件等数据分布式存储与管理的实际需求,京东从2013年7月开始着手自主研发分布式文件系统JFS,以及分布式的缓存与高速键值存储服务JIMDB,目前已经取得了阶段性的成果。

  据袁航现场介绍,JIMDB从缓存发展而来, 目前服务于京东的几乎所有的业务系统,包括很多重要的业务系统,例如, 前台的商品详情页, 交易平台, 广告,搜索, 即时通讯…… , 后台的订单履约, 库存管理, 派送和物流……。

  主要采用官方Redis作为单节点服务; 客户端一致性Hash + Presharding技术; 管理,监控和报警。

  功能包括:故障检测和自动切换;平滑纵向扩容和平滑横向扩容;基于内存+SSD的两级存储结构和自主研发存储引擎。

  将缓存数据分摊到多个分片(每个分片上具有相同的构成,比如:都是一主一从两个节点)上,从而可以创建出大容量的缓存。

  针对读操作可分为“主优先”、“从优先”、“随意挑选”等方式;不同的I/O策略,对数据一致性的影响也不同,应用可以根据自身对数据一致性的需求,选择不同的I/O策略。

  通过选举算法实现的哨兵服务能够自动判断实例的不存活状态,通知 Failover服务进行主从自动切换, 切换时间在秒级,以保证缓存服务的7 *24小时不间断运行。

  第一种形式,通过在单个节点上预留内存,然后需要扩容时直接使用预留内存的方法达到扩容的目的。

  提供类似于redis命令窗口的web控制台,禁止危险命令,严格控制写命令和一些运维相关命令,适当放开查询命令。

  将缓存数据分摊到多个分片(每个分片上具有相同的构成,比如:都是一主一从两个节点)上,从而可以创建出大容量的缓存。

  例如:网络不佳的情况下可能发生误判; Redis单线程执行,在进行长任务时可能发生误判。

  比如:在机房中不同区域部署多个Failure Detector;多个Failure Detector之间采用分布式选举算法,判断Redis实例的死活;连接健康度不佳时, 验证端口是否通畅。

  首先,在内存不够, 需要增加内存时首先考虑的是纵向扩容,即增加每个分片的主、从节点的内存。

  其次,纵向扩容时如果Redis实例所在计算机物理内存不够,就需要进行数据迁移。

  首先,单一分片的内存是不能无限扩容(纵向)的, 太大了会影响复制的效率;其次,在纵向扩容无法进行的情况下(单一分片内存已经很大,或者流量压力很大),就需要进行横向扩容,即增加集群的分片数。再有,横向扩容的同时,服务不能暂停。

  首先,纵向扩容并不增加分片数,简单修改JIMDB实例运行时参数可提高该实例可用内存上限,但在机器内存吃紧时,若要提高该分片内存上限,需要将该实例平滑迁移至一台内存资源更加充沛的机器。

  其次,流量打满或者出现热点时, 需要加分片分散压力。 机器内存不够时, 有时也需要加分片

  再次,Pre-sharding的方式, 在不影响服务的情况下增加分片有难度。

  还有,可以通过定制开发引入bucket来进行横向扩容, 但线等既有版本,也有加分片的需求。

  其次,开发一个支持Hold和Split的Proxy, 并通过一个流程控制器来协调客户端,服务结点,Proxy, 等相关各方。

  对于水平扩容,则是依赖于bucket来解决的。每个JIMDB实例内部都含有若干个buckets,和上述第一类扩容相似,水平扩容也是通过对数据进行平滑迁移来实现的,但迁移的粒度不再是整个实例,而是针对集群中的这些buckets。扩容前后如下图所示:

  比如,Redis完全依赖于内存,往往内存不够使用;Redis启动时需要把全部数据加载到内存,在数据量大时启动速度慢; 规划总是赶不上业务发展, 内存总量不断被突破, 不断陷入扩容, 再扩容…的梦魇。

  引入RAM + SSD两级存储,在内存中存储热点数据, 冷数据被自动交换到磁盘,解决了内存不足的问题;启动时并不把所有数据加载入内存,而是在运行时根据需要加载,解决了启动速度慢的问题; 因为引入了二级存储, 存储容量通常比较大, 所以不需要频繁的扩容了。

  技术为驱动已经成为互联网公司的重要决策,京东在技术上正在做更多的努力,借助技术的力量,提升用户的体验已经成为当下最为重要的工作,这一点可以从我们浏览图片、下单等整个流程都可以感受到。

http://billsauctions.com/shujugaosuhuancun/172.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有