08 2021 档案
摘要:一、前言 对于开发一个Java项目,上线之前会通过编译,测试,打包,部署这几个构建过程,如果文件较少,我们可以使用java-->javac-->jar这些命令去完成上述的构建流程。但是当工程越来越大,文件越来越多。Java原生的命令就显得捉襟见肘,力不存心了。Maven基于POM管理jar包依赖,通
阅读全文
摘要:一、前言 Flume作为当下最流行的大数据采集组件之一。其本身拥有分布式/高可靠/高可用等优点,但相比较于Flink/Spark/Kafka等大数据组件,其对于本地调试的功能支持度并不高,如果我们没有掌握Flume的远程调试要领,就只能不停的进行打日志,部署,打日志,部署这样低效的工作,而这对于程序
阅读全文
摘要:一、前言 最近工作中有这样一个ElasticSearch(以下简称ES)写入的场景,Flink处理完数据实时写入ES。现在需要将一批历史数据通过Flink加载到到ES,有两个点需要保证: 对于历史数据,ES已有文档,则舍弃旧数据,ES没有则插入历史数据。 对于新数据,能对现有的ES数据进行更新。 参
阅读全文
摘要:一、前言 ElasticSearch(以下简称ES)的数据写入支持高并发,高并发就会带来很普遍的数据一致性问题。常见的解决方法就是加锁。同样,ES为了保证高并发写的数据一致性问题,加入了类似于锁的实现方法--版本控制。锁从其中的一个角度可分为乐观锁和悲观锁。 对于同一个数据的并发操作,悲观锁认为自己
阅读全文
摘要: 一、前言 假设当前Flink应用已实现EOS(即 Exactly-Once Semantics)语义,现在需要增加Flink处理数据持久化到MySQL,前提条件不能打破Flink EOS的生态。官方提供的flink-connector-jdbc并没有提供事务和checkpoint的相关操作,自定
阅读全文
摘要:一、前言 根据维基百科的定义,两阶段提交(Two-phase Commit,简称2PC)是巨人们用来解决分布式系统架构下的所有节点在进行事务提交时保持一致性问题而设计的一种算法,也可称之为协议。 在Flink 1.4版本中,社区将两阶段提交协议中的公共逻辑进行提取和封装,发布了可供用户自定义实现特定
阅读全文
浙公网安备 33010602011771号