Java网络编程-基础
Java并发基础-线程
Java并发基础-锁
FLIP-144: Native Kubernetes HA for Flink
本文是基于 FLIP-144 的笔记作品,主要描述 Flink HA 基于 Kubernetes 的设计思路
【论文阅读】DBLog:A Watermark Based Change-Data-Capture Framework
DBLog: A Watermark Based Change-Data-Capture Framework
摘要(ABSTRACT)
本文讨论了应用程序在使用多种异构数据库时所面临的数据同步挑战,并探讨了现有解决方案的局限性。通常,应用会利用不同的数据库以满足特定需求,例如存储基本数据或提供高级搜索功能。因此,保持多个数据库之间同步显得尤为重要。尽管之前有双写和分布式事务等解决方案,但这些方法在可行性、健壮性和维护性方面存在不足。
最近出现的一种替代方法是使用变更数据捕捉(CDC),从数据库的事务日志中捕捉更改的行,并以低延迟将其传递到下游。然而,数据同步不仅需要捕捉更改,还需要复制数据库的全量状态,因为事务日志通常不包含完整的更改历史。同时,还有需要高可用性事务日志事件的场景,以便数据库能够尽可能保持同步。
为了解决上述挑战,本文介绍了一种新颖的CDC框架,名为DBLog。DBLog采用水印(watermark)驱动的方法,允许通过直接从表中选择的行与事务日志事件进行交错,从而捕捉数据库的全量状态。该解决方案使得日志事件在处理选择操作时可以继续前进,而不会出现停滞。选择操作可以在任何时间对所有表、特定表或特定主键的表触发。DBLog以块的形式执行选择操作并跟踪进度,允许暂停和恢复。水印方法不使用锁,对源的影响最低。目前,DBLog已在Netflix的多个微服务中投入生产使用。
Flink-Source-2 SourceReaderBase 流程
本文着重描述了 SourceReaderBase 实现逻辑,但是在描述 SourceReader 之前,肯定是需要了解与之关系密切的 SplitEnumerator 的行为,由于 SplitEnumerator 仅提供了一个接口,我们要确定多数情况下的实现,SplitEnumerator 是如何与 SourceReader 进行交互的,毕竟 Source 的起点是在 JobManager 的 SplitEnumerator 之中。
Flink-Source-1 Connector 的一些概念理解
本篇文章主要目的是在工作和学习过中对于 Flink Source 的一些使用和学习的理解记录。