腾讯CMEM平台简介
CMEM简介
- 全称为Cloud Memcache,是腾讯云平台提供的极高性能、内存级、持久化、分布式
的Key-Value存储服务。
- CMEM是作为最终落地存储来设计的,拥有数据库级别的访问保障和持续服务能力。
- CMEM兼容memcached协议,能力比memcached强(能落地),适用memcached、ttserver的地方都适用CMEM。
- CMEM解决了内存数据可靠性、分布式及一致性上的问题,让海量访问业务的开发变得简单快捷。
- 使用CMEM的好处
- 便捷,即时申请即时使用,无需自行安装。
- 易用,可以直接使用memcached的API来访问CMEM。
- 安全可靠,重启机器不丢数据、 双机热备,主备切换对业务透明,跨机架跨交换机部署,具备灾难时的回档能力。
- 省心,具备自动扩容能力,扩容对用户访问透明,且扩容后不影响服务,拥有全面监控及运营团队,用户不需要去半夜去处理故障。
- 性能极高,热点数据全部都在内存,且解决了内存数据的可靠性问题。
- 成熟稳定,容灾机制健全,服务成熟,服务于海量第三方用户且久经考验,开发者完全可以放心使用,运营数据已超过40T,接入业务包括胡莱三国,幻想之城,蜀山传奇等。
- 架构模型:
-
- 服务的可靠性:
- 接入机镜像,相互容灾
- 存储机双机热备,读自动切换,写半自动切换
- 备份中心,每日全量备份+5分钟粒度流水备份
-存储机配有磁盘镜像和操作流水,掉电重启后自行重建内存
服务的无损性:
- 人工/自动触发扩容,扩容瞬间完成,解决数据瞬间暴涨问题
- 数据搬迁时用户可读写,影响万分之一的删除,每个用户受影响时间正常情况下持续在1分钟之内
- 单台备机死机服务无影响,主机死机后只读,人工/自动切换到备机则恢复到可读写状态
- 极端灾难的应对:
- 机架掉电:主备Cache部署在不同机架。
- 交换机故障:主备Cache部署在不同交换机下。
- 机房掉电:服务受损,但数据可恢复。
- 掉电+多点磁盘故障:生产系统无法恢复,由备份中心负责回档。
- 备份能力:
技术点:
- 充分运用zero-copy思想,在消息传递时,基本达到理论上的最少copy次数。
- 快速hash技术
- 内存快速分配技术
- 多核充分利用技术
- 无锁技术
结论:
- 接入模块的小包处理能力可达到35w/s(req+rsp),最大限度挖掘了硬件能力,使性能达到极致。
- CMEM后续性能挖掘点主要在硬件适配方面,包括超线程CPU,多队列网卡等。
- 多协议支持:
- 私有协议:广泛用于腾讯内部自研业务,支持接入鉴权,容灾,负载均衡,支持批量,多列,偏移访问。在不久的将来也会提供事务的特性,提供锁,回滚等操作。
- Memcached开源协议:广泛用于第三方开放平台APP。包括胡莱三国,守卫家园,阳光小镇等。不支持异步客户端,使用前必须阅读限制条件。http://wiki.open.qq.com/wiki/CMEM
- Redis接口:实现中。
- Mangodb接口:实现中。
- 限制条件和应用场景:
限制:
Key不超过10K
Value不超过10M(memcached开源协议限制为1M)
应用场景:
数据总量适合于存储在内存中
任何Key-Value形式的,写量很大的数据。
对延时要求很高的业务。
CMEM的用户价值:
接入即可使用,无需自行搭建,简单方便。
性能极好,几乎没有延时毛刺。小包2ms之内的服务质量保证。
通过云化复用,节约用户成本。
双机热备,磁盘流水,掉电不丢失,保障数据安全。
无需用户运维,用户不用关注容灾、机器故障、扩容、分布等问题。专注于应用开发即可。
依托腾讯的技术能力,使用户获得海量服务的能力,为应用的发展壮大奠定基础。
CMEM未来开发计划:
SSD介质支持,热冷调度,冷热调度,大幅降低用户成本。
自动热点发现,自动负载调平,自动扩容,自动缩容,降低运维成本。
面向最终用户的运营系统,为用户分析数据提供便利。
事务支持,让用户回滚数据更加容易。
接入通道扩容对用户透明。