阅读笔记(八)

离线同步:可理解为将根据一个sql查询出的数据同步到其它目标存储上;

实时订阅:通过实时解析mysql-binlog,将数据的变动封装成事件存于消息队列,供用户订阅消费;

实时同步:提供一些常见的订阅客户端料现,实时消费消息,将数据的变动应用于目标存储上。

BatchTask:Fetcher负责抽取数据,Sinker负责写入数据,Storage为缓存层。

StreamTask:

RelayLogTask负责拉取binlog;HHLTask负责解析Binlog,并将解析出的数据变更事件封装为易使用的消息体,最后存入hhl中。

hhl的实现借鉴了Kafka,可看作一个简易版的消息队列。消息使用protobuf序列化,压缩后顺序写入文件。同时提供了指定大小的索引块。

PieTask:

PieTask实际是对客户端的封装,这里主要介绍一下客户端的实现。

客户端采用并发处理的模式,connector负责接收消息,paritioner负责分发消息交给不同的Processor(线程)处理。

因客户端需自己记录当前处理的位点,但又要保障在并发场景下记录的位点之前的消息都已被正确处理。为了减少线程间阻塞,使用了环形数组的提交方式(记录位点)。

集群:高可用,数据本地性,负载均衡

文章部分转载:

数据蜂巢架构演进之路

posted @ 2019-04-30 14:16  胖虎ydy  阅读(92)  评论(0编辑  收藏  举报