flink二阶提交(没有搞完)
举例说明
甲乙丙丁四人要组织一个会议,需要确定会议时间,不妨设甲是协调者,乙丙丁是参与者。
投票阶段:
(1)甲发邮件给乙丙丁,周二十点开会是否有时间;
(2)甲回复有时间;
(3)乙回复有时间;
(4)丙迟迟不回复,此时对于这个活动,甲乙丙均处于阻塞状态,算法无法继续进行;
(5)丙回复有时间(或者没有时间);
提交阶段:
(1)协调者甲将收集到的结果反馈给乙丙丁(什么时候反馈,以及反馈结果如何,在此例中取决与丙的时间与决定);
(2)乙收到;
(3)丙收到;
(4)丁收到;
来源
代码以[4]为主,我自己修正了一些bug,增加了依赖。
集群准备工作
启动Zookeeper集群、Kafka集群、Flink集群。
流程图
Mysql准备工作
create database test;
use test;
CREATE TABLE `mysqlExactlyOnce_test` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`value` varchar(255) DEFAULT NULL,
`insert_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
文件说明与联系
文件 | 说明 | 需要设定的参数 |
DBConnectUtil.java | java连接数据库 | 无 |
KafkaUtils.java(生产者,顶层文件) | 生产者 | broker_list |
MysqlExactlyOncePOJO.java | 一个pojo对象 | 无 |
MySqlTwoPhaseCommitSink.java(被调用) | 插入数据,制造异常 | jdbc:mysql://以及sql语句 |
streamdemokafka2mysql.java(调用MySqlTwoPhaseCommitSink,顶层架构) | Flink source与sink |
BOOTSTRAP_SERVERS_CONFIG |
运行步骤
①运行StreamDemoKafka2Mysql.java
②运行KafkaUtils.java
调试用命令
$KAFKA/bin/kafka-topics.sh --list --zookeeper Desktop:2181
$KAFKA/bin/kafka-console-consumer.sh --bootstrap-server Desktop:9091 --from-beginning --topic mysql-exactly-Once-4
修改的主题的话,需要同时在kafkautils.java和StreamDemoKafka2Mysql.java中修改
实验效果
tijiao最终代码如下
Reference:
[1]Flink两阶段提交
[2]Flink 之 MySQL二阶提交
[3]解决Flink消费Kafka信息,结果存储在Mysql的重复消费问题
[4]Flink实现Kafka到Mysql的Exactly-Once
[5]Kafka常用命令
[6]一分钟了解两阶段提交2PC(运营MM也懂了)
flink二阶提交(没有搞完)相关推荐
- flink写入iceberg(没有搞完)
Reference: [1]Flink集成数据湖之实时数据写入iceberg [2]在 Flink 中使用 iceberg [3]基于 Flink+Iceberg 构建企业级实时数据湖 [4]Flin ...
- flink 任务提交问题汇总
flink 任务提交问题汇总 1.提交flink自带任务WordCount.jar遇到的问题: 2.提交flink 批处理任务时遇到的问题 3.flink定时任务,mysql连接超时问题 4.flin ...
- matlab判断系统稳定性 -Nyquist图(极坐标图)判据(还没有搞完。。。。。。。)
matlab判断系统稳定性 -Nyquist图(极坐标图)判据(还没有搞完.......)
- Flink界面提交任务报错500【The program plan could not be fetched】
flink界面提交任务 F12报错 network报错: {"errors":["Internal server error.","<Excep ...
- OkHttp完美封装,一行搞完外部请求
OkHttp完美封装,一行搞完外部请求 OKHttpUtil 在Java的世界中,Http客户端之前一直是Apache家的HttpClient占据主导,但是由于此包较为庞大,API又比较难用,因此并不 ...
- flink中各种图的原理(还没搞完)
https://lulaoshi.info/flink/chapter-system-design/task-resource.html
- iOS-通俗易懂的微信支付接入和爬坑指南,十分钟轻松搞完
现在基本所有的App都会接入支付宝支付以及微信支付,也有很多第三方提供给你 SDK帮你接入,但是这种涉及到支付的东西还是自己服务器搞来的好一些,其实搞懂了 逻辑非常的简单,下面直接给大家说说下基本流 ...
- barrier相關知識點整理(还没搞完)
Reference: [1]Flink之状态管理--容错--检查点 [2]一文详解Flink Exactly-Once [3]Flink作业问题分析和调优实践 [4]Flink -- 容错性机制- 屏 ...
- ❤️技术改变命运!中秋一天搞完私活,4K到手,分享下经验!确实有技术啥都不愁!❤️
中秋节,放三天假.三天过得非常充实. 没有出去,外面人山人海的. 我不喜欢热闹. 本来计划的是充电三天.但是突然有个粉丝朋友找找到,要搞个springboot 的小项目,看起来非常着急的样子,不是很想 ...
最新文章
- 孙立岩 python-basic: 用于学习python基础的课件(十三十四 十五)
- form提交后,jquery 显示 文本框选择值和下拉框选中值
- makefile文件编写_九图记住Makefile
- 有关android UI 线程
- ffplay.c学习-5-视频输出和尺⼨变换
- 【0702作业】输出九九乘法表
- 【ArcGIS|空间分析】数据采集处理(全国大学生GIS技能大赛试题)
- VS 番茄助手添加头注释 以及使用方式
- 计算机网络教程 azw3,Windows 10从入门到精通(pdf+epub+mobi+txt+azw3)
- bzoj3168 [Heoi2013]钙铁锌硒维生素(矩阵求逆+匈牙利)
- Android使用高德地图地理围栏定位自动发送短信
- 微信支付,小程序支付V3
- .NET 4.0安装提示一般信任关系失败
- 小程序 正整数与char(character)的相互转换,十六进制与十进制相互转换
- 自己搭建一个局域网(两台电脑)
- 【博弈论】HDU 2188
- 2021广东省安全员 考试题库及答案 广东三类人员题库安全员
- 桥梁在线计算机监测系统,桥梁安全在线监测系统
- 又一个网友放生后拍出红莲瓣!
- QQ超级秘笈:免费申请QQ号码(转)
热门文章
- hadoop常见面试题
- Codeforces Round #408 (Div. 2)
- 四象限法推导lm曲线_IS曲线推导
- net start mysql 发生系统错误2 系统找不到指定的文件
- mysql 商品属性_MySQL产品属性表设计
- 报错空指针异常_让你为之颤抖的Java常见的异常exception
- Scrapy中Request的回调函数不执行
- ant design表格添加loading效果
- Mpvue+koa开发微信小程序——wx.request()的封装及应用
- VTK教程系列:VTK基础及应用开发教程