京东八年架构师: Redis 如何分布式,金融的设计原理

本文介绍了京东金融R2M分布式缓存系统,包括其全Web可视化运维、资源池管理、集群扩容迁移、冷热数据交换、多机房容灾等功能。R2M简化了接入、配置管理,并提供了丰富的数据类型API。系统通过自动化部署、资源规划和智能扩容确保高可用性和高并发性能。此外,文章还探讨了数据迁移原理、多机房切换策略以及监控告警机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

R2M 是京东金融线上大规模应用的分布式缓存系统,目前管理的机器总内存容量超过 60TB,近 600 个 Redis Cluster 集群,9200 多个 Redis 实例。

其主要功能包括:全 web 可视化运维、缓存集群一键部署、资源池统筹管理、在线扩容及快速数据迁移、多机房切换及容灾、完善的监控及告警、Redis API 兼容等。

本文将从 R2M 系统架构、资源管理、集群扩容与迁移、数据冷热交换、多机房容灾等多方面进行深入剖析,希望读者能有所收获。

业务使用及运维上的优点

极简化接入

R2M 接入简单,以 Java 客户端为例,只需在业务程序中引入客户端 jar 包,配置好 appname 及 ZK 地址,即可使用。

配置自动下发

R2M 客户端提供了诸如连接池、读写超时时间、重试次数等配置,有些情况下,需要对这些配置进行调优,比如 618、双十一大促来临时,有些业务需要减小客户端读写超时时间,避免超时问题引发的连锁反应。

为了修改配置,业务不得不重新上线所有的客户端,不仅费时费力,还有可能引发故障。因此,为了避免这个问题,R2M 提供了配置自动下发功能,业务客户端无需重新上线,管理端修改配置后,所有客户端即时生效。

多种数据类型 API 支持

完全兼容 Redis 各数据类型 API 接口,提供包括哈希、集合、有序集合、列表、发布 / 订阅等近百个接口。

支持数据冷热交换

在保证高性能和数据一致性的前提下,实现了基于 LFU 热度统计的数据动态冷热交换,使得冷数据被交换到 SSD 上,热数据被加载到 Redis 上,取得高性能和低成本的高平衡。

全 web 可视化运维

R2M 实现了包括集群部署、扩容、数据迁移、监控、集群下线、数据清理、故障节点替换及机器下线等在内的所有功能的可视化运维,运维效率及可用性大大提升。

多机房一键切换

通过改造 Redis Cluster 支持多机房灾备、防止集群脑裂,以及各系统组件针对多机房切换选举的支持,实现了在 Web 控制台的多机房一键切换。

多种方式的集群同步及数据迁移工具

R2M 提供了专门的迁移工具组件,支持从原生 Redis 迁移至 R2M,实现了基于 Redis RDB 文件传输及增量同步的迁移机制。

同时,还可以指定规则比如按照前缀匹配或者反向匹配进行部分数据迁移。由于内部历史原因,京东金融部分业务以前用的是京东商城的 Jimdb,R2M 同样也支持了从 Jimdb 集群进行迁移。

R2M 迁移工具还支持数据实时同步的功能,包括 R2M 集群间的数据同步和 Jimdb 源集群的数据同步。

非 Java 语言代理

我们的业务开发人员主要用的是 Java,对于非 Java 语言的客户端,比如 Python、C 等等,则通过 R2M Proxy 组件接入,各种运维操作在 Proxy 层进行,对业务方屏蔽。同时,Proxy 也提供了高可用保障方案。

系统架构

 

组件功能

Web console

是 R2M 缓存系统的可视化运维控制台。所有运维操作均在 Web console 进行。

Manager

整个系统的管理组件。负责所有运维操作的下发、监控数据的收集等。运维操作包括集群创建、数据迁移、扩容、多机房切换等等。

Agent

每台物理机上部署一个 Agent 组件,Agent 负责本机 Redis 实例的部署和监控,并进行数据上报。

缓存集群节点

每个集群的节点分布在不同机器上,若干个节点构成一个分布式集群,去中心化,无单点。

Client

客户端由业务方引入,如:Java 通过 jar 包方式引入。

Proxy

对于非 Java 客户端的业务,通过 Proxy 提供缓存接入和服务。

缓存集群一键部署

分布式集群的部署通常来说是比较麻烦的,涉及到多台机器、多个节点及一系列的动作和配置,比如部署 Redis Cluster,就包括节点安装与启动、节点握手、主从分配、插槽分配、设置复制这些步骤。

虽然官方提供了构建集群的工具脚本,但机器推荐、节点安装及配置仍然没有自动化,对于需要大规模部署和运维 Redis Cluster 的企业来说,仍然不够灵活和便捷。

因此,R2M 基于 Golan

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值