Jimdb-个人学习总结

Jimdb是京东分布式缓存系统,承载京东的大量数据,支持几乎所有业务系统,本文在学习jimdb架构基础上进行的总结。

(1)Jimdb架构


Jimdb-个人学习总结_第1张图片

Smart client 能够根据元数据路由数据到相应的后端shard,同时支持元数据更新,目前有java和c版本。

Access proxy 是go语言实现的proxy,也支持基于元数据的路由及更新,能够支持redis原生client的访问。

Failure detector(哨兵)每个机房部署一套,一般是奇数个,通过分布式选举算法检测redis实例的状态。

Failover controller(自动切换控制器)接收failure-detector的检测结果对故障的redis实例进行故障切换。

Pusher(信息采集)对redis实例进行信息采集,存储到时间序列的数据库中。

Alarm(规则报警器)对采集的数据进行分析,根据规则进行报警。

Scaling controller(扩容控制器)控制各分布式组件(proxy, filter)协调工作,进行平滑纵向切换和水平扩容。

Config Server(配置服务器/元数据服务器)负责提供配置和元信息服务,Smart client和Access proxy定期polling配置,这样不需要保存Smart client和Access proxy的信息。

Admin Platform(管理平台)Jimdb统一接入管理平台,提供用户管理,集群管理,实例管理,监控报警管理,报表管理,客户端配置管理等。

Proxy 在迁移数据的时候将顶到redis集群前面,在数据快同步完成时hang一会儿,保证平滑迁移数据。

Filter 迁移部分数据时将挂载到redis实例上,使用slave of命令将数据导出来,再根据策略过滤掉部分数据,用于横向扩容。

(2)总结

从架构图中可以看出Jimdb是一个很完整的私有云服务,提供统一接入平台,监控,报警等服务,在redis引擎的基础上增加了分布式的支持,后期又在redis版本中支持了slot,虚拟化部署等特性,使整个服务更加自动化。但整体上小组件很多,增加了很多控制命令,也使整个jimdb系统过于复杂。



 

你可能感兴趣的:(Jimdb-个人学习总结)