X-Pipe 介绍
X-Pipe 是由携程框架部门研发的 Redis 多数据中心复制管理系统。。基于 Redis 的 Master-Slave 复制协议,实现低延时、高可用的
Redis 多数据中心复制,并且提供一键机房切换,复制监控、异常报警等功能。
Redis 在携程内部得到了广泛的使用,根据客户端数据统计,整个携程全部 Redis 的读写请求在每秒 200W,其中写请求约 10W,很多业务甚至会将
Redis 当成内存数据库使用。这样,就对 Redis 多数据中心提出了很大的需求,一是为了提升可用性,解决数据中心 DR(disaster
Recovery) 问题,二是提升访问性能,每个数据中心可以读取当前数据中心的数据,无需跨机房读数据,在这样的需求下,XPipe 应运而生 。
为了方便描述,后面用 DC 代表数据中心 (Data Center)。
多数据中心首先要解决的是数据复制问题,即数据如何从一个 DC 传输到另外一个 DC。我们决定采用伪 slave 的方案,即实现 Redis 协议,伪装成为
Redis slave,让 Redis master 推送数据至伪 slave。这个伪 slave,我们把它称为 keeper,如下图所示:
有了 keeper 之后,多数据中心之间的数据传输,可以通过 keeper 进行。keeper 将 Redis
日志数据缓存到磁盘,这样,可以缓存大量的日志数据(Redis 将数据缓存到内存 ring
buffer,容量有限),当数据中心之间的网络出现较长时间异常时仍然可以续传日志数据。
Redis 协议不可更改,而 keeper
之间的数据传输协议却可以自定义。这样就可以进行压缩,以提升系统性能,节约传输成本;多个机房之间的数据传输往往需要通过公网进行,这样数据的安全性变得极为重要,keeper
之间的数据传输也可以加密,提升安全性。
X-Pipe 官网
https://github.com/ctripcorp/x-pipe
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。