redis集群管理平台-分布式缓存引擎

简介

redis集群管理平台(简称Edis平台)采用redis命令分发方式实现redis集群管理,分发代理服务是无状态的,可以根据实际需要部署多个代理同时对外提供一致的服务。平台提供了大容量高性能的集群管理、高可用(自动检测redis状态,redis节点无法提供无法时自动主从切换)、数据迁移、动态扩容(缩容功能暂未提供)、redis节点数据备份/还原、redis节点启动/停止/进程守护等服务,可无缝实现redis集群的扩展。满足高读写性能场景及数据容量变化迅速的业务需求。目前已经在公司的多个项目使用。

性能对比

主要是测试了跟codis之间的性能对比。其中Edis平台只部署一个分发代理服务。

测试环境

CPU: Intel® Xeon® 2.40GHz
Mem:16G
Edis平台及codis均部署在该主机。
配置了4个redis服务供edis及codis测试。

测试工具

Redis自带的测试工具:redis-benchmark

测试结果

分别对edis平台及codis进行1000万数据set和get测试,客户端并发数为600,每次key为不同值。

  1. Edis平台测试结果
    Set每秒:52600左右,最高可以达到每秒5.5万;
    get每秒:51600左右,最高可以达到每秒5.3万。
  2. Codis测试结果
    Set每秒:56200左右,最高可以达到每秒6万;
    get每秒:55300左右,最高可以达到每秒5.7万。
  3. 直接压测单个redis服务
    Set每秒:41700左右,最高可以达到每秒4.3万;
    get每秒:41800左右,最高可以达到每秒4.5万。

通过结果对比可以看到Edis平台在只部署单个分发服务的情况下比codis的性能稍低。但Edis平台可以很方便通过部署多个分发服务来提升整体性能。而且整体部署也比codis要简单。

优势

  1. 实现了高可用、可扩展、高性能,目前一般的redis集群工具都提供了高性能、高可用支持,但可扩展方便并不是很理想。
  2. 相对一般的redis集群工具提供了更丰富的功能,如动态扩容、数据备份还原、redis节点运维等,其中动态扩容可以实现集群在工作状态时进行增加redis节点,redis节点进程守护可以如发现redis节点失效会自动重启redis;
  3. 由于分发代理服务无状态,可以通过部署多个分发代理服务对外提供一致的服务,减轻单个分发代理的压力,提供更高的性能;
  4. 使用java语言开发,只需运行jar包和tomcat就可以搭建环境,安装部署简单。

模块及功能实现

Edis平台主要包括配置中心、edis集群服务、同步服务、运维服务等模块,每一个都是单独部署,最后通过配置中心集成所有模块功能,配置中心与其它服务之间采用redis通信协议实现通信。其中edis集群服务、同步服务必须部署,运维服务等可以选择部署,然后配置到配置中心。

功能架构

redis集群管理平台-分布式缓存引擎_第1张图片

配置中心服务

配置中心服务主要提供配置管理、redis节点高可用及门户等功能,具体包括:

  1. 运行视图
    性能监控
    redis集群管理平台-分布式缓存引擎_第2张图片
    redis节点状态监控
    redis集群管理平台-分布式缓存引擎_第3张图片
    edis节点、同步服务、运维服务状态监控
    redis集群管理平台-分布式缓存引擎_第4张图片

  2. 配置管理
    包括edis代理管理、redis节点管理、同步服务节点管理、运维节点管理、集群配置向导等。
    配置管理中除了提供配置功能外,还提供了session明细查看、节点的启动、停止、进程守护等功能,前提是配置中心配置了运维服务。
    redis集群管理平台-分布式缓存引擎_第5张图片

  3. redis节点高可用
    配置到配置中心的redis节点,系统都会自动检测redis的状态,如果主节点无法提供服务后,会自动进行主从节点切换。从而保证集群的高可用。

  4. 缩扩容管理缩扩容管理
    目前只提供扩容功能,该功能底层由同步服务提供,可以在集群正常提供服务状态下进行动态扩容。但最好是在系统压力不大的情况进行扩容。
    redis集群管理平台-分布式缓存引擎_第6张图片

  5. 数据迁移
    提供redis节点到redis节点的数据迁移功能,也可以实现redis节点到edis平台的数据迁移。可以实现全量的数据迁移,也可以实现部分key的数据迁移。
    redis集群管理平台-分布式缓存引擎_第7张图片

  6. 备份还原
    实现了集群中redis节点数据的备份和还原功能。该功能底层由同步服务提供。
    redis集群管理平台-分布式缓存引擎_第8张图片

  7. 系统管理
    系统管理包括了简单的用户管理和日志列表,告警管理暂未提供。
    redis集群管理平台-分布式缓存引擎_第9张图片

edis集群服务

edis集群服务是整个系统的核心服务,实现了redis分发代理功能,对外接收redis命令,通过哈希分发,实现将redis命令发送到集群redis各个节点进行处理,然后将处理结果返回给用户。服务使用netty构建,封装实现了redis通信协议,对外提供类似redis的功能。

同步服务

同步服务实现了扩容、数据迁移、备份还原等底层功能。服务使用netty构建,通过redis sync命令获取redis节点的rdb数据,对rdb数据格式进行了解析封装,从而实现数据迁移功能。目前系统支持8版本及以下的rdb数据格式处理。数据同步采用pipeline方式实现,数据迁移速度快。

运维服务

运维服务实现了节点的启动/停止、节点进程守护等底层功能。服务使用netty构建,系统采用ssh方式来实现远程节点的维护。

安装包下载

由于公司还没有正式开源该系统,所以目前只能提供除了运维功能外的安装包供大家体验。例牌都要声明一下,由于版权原因,未经授权不允许商用。如果公司同意开源后会提供所有功能和代码。压缩包里提供了用户手册,详细安装及使用可以参考该文档。
下载链接:https://pan.baidu.com/s/1oowBay057J1mRZt7NpnlzQ
提取码:99x2

你可能感兴趣的:(redis)