点击上方"云时代架构", 右上角选择“设为星标”
精品技术文章准时送上!

虽然Sqoop支持增量同步但还属于粗粒度的离线同步,无法满足实时性的需求 每次同步Sqoop以sql的方式向Mysql发出数据请求也在一定程度上对Mysql带来一定的压力 同时Hive对数据更新的支持也相对较弱
master(主库)在每次准备提交事务完成数据更新前,将改变记录到二进制日志(binary log)中 slave(从库)发起连接,连接到master,请求获取指定位置的binlog文件 master创建dump线程,推送binlog的slave slave启动一个I/O线程来读取主库上binary log中的事件,并记录到slave自己的中继日志(relay log)中 slave还会起动一个SQL线程,该线程从relay log中读取事件并在备库执行,完成数据同步 slave记录自己的binlog


BinlogSyncJob:每一个mysql库都会对应这样一个Job,将binlog日志完整地写入到服务创建的Talos topic中 MysqlSyncJob:同步历史数据,消费binlog数据,过滤特定库表数据实时同步至用户配置的topic中

Worker节点通过在Zookeeper上注册告知自己可以被调度 通过在Zookeeper上抢占EPHEMERAL临时节点实现Master的HA 用户在融合云(Web)上注册BinlogSource同步任务 Master周期性从配置服务读取Binlog同步作业配置 Master更新Zookeeper中的调度信息 Worker节点 根据Zookeeper上的调度信息启动新分配任务,停止配置失效任务;作业启动后完成数据实时同步并周期性将同步进度记录在kudu中 服务上报监控信息到Falcon平台,作业异常退出发送报警邮件
顺序性
一致性
服务会记录作业同步的offset,重启后从上次commit的offset继续消费 Binlog数据的顺序性保证了即便数据被重复消费(未commit的数据),也能对同一条记录的操作以相同的顺序执行 下游存储系统kudu,Es ,Redis基于主键的操作能够保证binlog重复回放后数据的最终一致性
实时更新缓存

异步处理,系统解耦
即席查询的BI系统


数据不一致问题,业务使用唯一索引
Full Dump同步历史数据时,客户端超时




做互联网时代适合的架构:开放、分享、协作
长按二维码即可关注我们
求在看|求转发
文章转载自云时代架构,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




