考虑到 Channel 在目前的实现上存在一些问题,去掉 Channel 在一些不需要多路复用数据流的场景下,数据传输表现效果会更好。Databus 的设计理念在于去掉 Channel,其相比 Flume 的优势在于:
模型抽象简单,方便理解,一个 source 对应一个 sink。
配置项简单,对于数十行的 Flume 配置,Databus 可能只需十几行即可搞定。
数据传输延迟低,去掉 Channel 组件,缩短了数据链路,尤其对于非内存的 Channel,降低数据延迟的效果更明显。
Flume Databus模型抽象 source-channel-sink source-sink
配置 繁多冗长 简洁
灵活性 一个source对应多个sink 一个source对应一个sink
数据传输延迟 较高 较低
结语
项目实现了很多常用的Source 和 Sink,并对每个Source 和 Sink 的特性、适用场景,以及配置参数进行了说明,方便用户快速上手。详细内容可查阅项目的GitHub地址:https://github.com/weibodip/databus
Databus系统在微博业务的日常使用场景中,已经承接了各种Source 和Sink 的数据传输业务。在大数据和高并发场景的检验下,系统曾暴露出一些问题,而这些问题已经得到修复,目前系统已稳定运行多年。不过在程序的世界里,Bug是无法避免的,在使用过程中如有遇到问题,欢迎提 Issue,我们会尽快修复~