VDL(Vip Distributed Log)的是一款基于Raft一致性算法的高吞吐、低延时的分布式日志存储系统。
VDL(Vip Distributed Log)的定位是:高吞吐、低延时的分布式日志存储,多副本、强一致性是其关键的特征。 这里的Log不是指syslog或者log4j产生的用于跟踪或者问题分析的应用程序日志。Log贯穿于互联网企业应用开发的方方面面,从DB的存储引擎、DB的复制、分布式一致性算法到消息系统。本质上都是Log的存储和分发。 从应用场景来看,VDL的应用包含下面三类:
- 复制状态机(Replicated State Machine) - 这一类应用主要使用VDL作为事务日志。 比如用于存储MySQL的Binlog,形成统一的Binlog服务层,简化数据库的备份、恢复、实例重建、failover等高频流程。
- 消息队列、消息发布订阅、流计算 - 这一类应用主要使用VDL来存储和传递消息。 我们可以基于VDL实现消息发布/订阅系统;同时也可以作为Storm/Spark的输入和输出,用于实时流计算的场景。
- 数据复制 - 这一类应用主要使用VDL来进行数据的复制。这个数据复制可能发生在本地机房,也可能是跨机房。 我们可以基于VDL构建我们强一致的数据库技术方案。
外部应用通过Kafka协议来发送数据到VDL,VDL通过Raft协议来保证数据的强一致和高可靠。客户端通过Kafka协议来消费VDL中的数据。
- 支持kafka协议生产和消费数据。
- 数据强一致,raft协议保证。
- 保证线性读一致性。
- 部署运维简单,不依赖于其他外部组件
VDL由唯品会基础架构部-数据与中间件组开发和维护。开发成员如下:
VDL 开源协议遵循Apache 2.0 license.详见LICENSE文件。