You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 卢伟楠 <gl...@gmail.com> on 2019/12/25 08:09:03 UTC

Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题

各位大佬好:
	
最近是实现Kafka到Mysql的 End-To-End Exactly-Once中遇到以下2个问题:
1:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown.
2:org.apache.flink.streaming.runtime.tasks.TimerException: org.apache.flink.streaming.runtime.tasks.ExceptionInChainedOperatorException: Could not forward element to next operator

已经做了一个最简单的复现问题的demo,求指教
git clone https://github.com/lusecond/flink_help --depth=1

测试过程中,发现继承TwoPhaseCommitSinkFunction类的4个重写方法beginTransaction、preCommit、commit、abort
分别在不同的线程工作,怀疑过因为线程切换导致jdbc的事务提交出问题,已经做过相关测试排除不是由此引起的问题

回复: Re: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题

Posted by "hdxg1101300123@163.com" <hd...@163.com>.
我参考你的代码,也遇到了同样的问题,有什么好的方法吗?



hdxg1101300123@163.com
 
发件人: 卢伟楠
发送时间: 2020-01-03 15:18
收件人: user-zh
主题: Re: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题
我发这个用于测试的代码,里面的mysql-connector-java已经是最新的了,由于使用mysql-connector-java老版本趟过的坑已经处理过一遍了
 
> 在 2020年1月3日,下午3:13,残翅2008 <77...@qq.com> 写道:
> 
> 对于第1个问题尝试使用mysql-connector-java的latest版本
> 我之前使用5.1.6版本遇到同样的问题
> 改为5.1.48比较稳定
> <dependency&gt;
> &nbsp; &nbsp; <groupId&gt;mysql</groupId&gt;
> &nbsp; &nbsp; <artifactId&gt;mysql-connector-java</artifactId&gt;
> &nbsp; &nbsp; <version&gt;5.1.48</version&gt;
> </dependency&gt;
> 
> 
> 
> 
> 
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:&nbsp;"LakeShen"<shenleifighting@gmail.com&gt;;
> 发送时间:&nbsp;2019年12月26日(星期四) 中午11:35
> 收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
> 
> 主题:&nbsp;Re: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题
> 
> 
> 
> 是否可以尝试使用幂等来解决 端到端的一致性
> 
> Best wishes,
> 沈磊
> 
> 卢伟楠 <glusecond@gmail.com&gt; 于2019年12月25日周三 下午4:09写道:
> 
> &gt; 各位大佬好:
> &gt;
> &gt; 最近是实现Kafka到Mysql的 End-To-End Exactly-Once中遇到以下2个问题:
> &gt; 1:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
> &gt; Communications link failure during commit(). Transaction resolution unknown.
> &gt; 2:org.apache.flink.streaming.runtime.tasks.TimerException:
> &gt; org.apache.flink.streaming.runtime.tasks.ExceptionInChainedOperatorException:
> &gt; Could not forward element to next operator
> &gt;
> &gt; 已经做了一个最简单的复现问题的demo,求指教
> &gt; git clone https://github.com/lusecond/flink_help --depth=1
> &gt;
> &gt;
> &gt; 测试过程中,发现继承TwoPhaseCommitSinkFunction类的4个重写方法beginTransaction、preCommit、commit、abort
> &gt; 分别在不同的线程工作,怀疑过因为线程切换导致jdbc的事务提交出问题,已经做过相关测试排除不是由此引起的问题

Re: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题

Posted by 卢伟楠 <gl...@gmail.com>.
我发这个用于测试的代码,里面的mysql-connector-java已经是最新的了,由于使用mysql-connector-java老版本趟过的坑已经处理过一遍了

> 在 2020年1月3日,下午3:13,残翅2008 <77...@qq.com> 写道:
> 
> 对于第1个问题尝试使用mysql-connector-java的latest版本
> 我之前使用5.1.6版本遇到同样的问题
> 改为5.1.48比较稳定
> <dependency&gt;
> &nbsp; &nbsp; <groupId&gt;mysql</groupId&gt;
> &nbsp; &nbsp; <artifactId&gt;mysql-connector-java</artifactId&gt;
> &nbsp; &nbsp; <version&gt;5.1.48</version&gt;
> </dependency&gt;
> 
> 
> 
> 
> 
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:&nbsp;"LakeShen"<shenleifighting@gmail.com&gt;;
> 发送时间:&nbsp;2019年12月26日(星期四) 中午11:35
> 收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
> 
> 主题:&nbsp;Re: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题
> 
> 
> 
> 是否可以尝试使用幂等来解决 端到端的一致性
> 
> Best wishes,
> 沈磊
> 
> 卢伟楠 <glusecond@gmail.com&gt; 于2019年12月25日周三 下午4:09写道:
> 
> &gt; 各位大佬好:
> &gt;
> &gt; 最近是实现Kafka到Mysql的 End-To-End Exactly-Once中遇到以下2个问题:
> &gt; 1:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
> &gt; Communications link failure during commit(). Transaction resolution unknown.
> &gt; 2:org.apache.flink.streaming.runtime.tasks.TimerException:
> &gt; org.apache.flink.streaming.runtime.tasks.ExceptionInChainedOperatorException:
> &gt; Could not forward element to next operator
> &gt;
> &gt; 已经做了一个最简单的复现问题的demo,求指教
> &gt; git clone https://github.com/lusecond/flink_help --depth=1
> &gt;
> &gt;
> &gt; 测试过程中,发现继承TwoPhaseCommitSinkFunction类的4个重写方法beginTransaction、preCommit、commit、abort
> &gt; 分别在不同的线程工作,怀疑过因为线程切换导致jdbc的事务提交出问题,已经做过相关测试排除不是由此引起的问题


回复: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题

Posted by 残翅2008 <77...@qq.com>.
对于第1个问题尝试使用mysql-connector-java的latest版本
我之前使用5.1.6版本遇到同样的问题
改为5.1.48比较稳定
<dependency&gt;
&nbsp; &nbsp; <groupId&gt;mysql</groupId&gt;
&nbsp; &nbsp; <artifactId&gt;mysql-connector-java</artifactId&gt;
&nbsp; &nbsp; <version&gt;5.1.48</version&gt;
</dependency&gt;





------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"LakeShen"<shenleifighting@gmail.com&gt;;
发送时间:&nbsp;2019年12月26日(星期四) 中午11:35
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;Re: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题



是否可以尝试使用幂等来解决 端到端的一致性

Best wishes,
沈磊

卢伟楠 <glusecond@gmail.com&gt; 于2019年12月25日周三 下午4:09写道:

&gt; 各位大佬好:
&gt;
&gt; 最近是实现Kafka到Mysql的 End-To-End Exactly-Once中遇到以下2个问题:
&gt; 1:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
&gt; Communications link failure during commit(). Transaction resolution unknown.
&gt; 2:org.apache.flink.streaming.runtime.tasks.TimerException:
&gt; org.apache.flink.streaming.runtime.tasks.ExceptionInChainedOperatorException:
&gt; Could not forward element to next operator
&gt;
&gt; 已经做了一个最简单的复现问题的demo,求指教
&gt; git clone https://github.com/lusecond/flink_help --depth=1
&gt;
&gt;
&gt; 测试过程中,发现继承TwoPhaseCommitSinkFunction类的4个重写方法beginTransaction、preCommit、commit、abort
&gt; 分别在不同的线程工作,怀疑过因为线程切换导致jdbc的事务提交出问题,已经做过相关测试排除不是由此引起的问题

Re: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题

Posted by LakeShen <sh...@gmail.com>.
是否可以尝试使用幂等来解决 端到端的一致性

Best wishes,
沈磊

卢伟楠 <gl...@gmail.com> 于2019年12月25日周三 下午4:09写道:

> 各位大佬好:
>
> 最近是实现Kafka到Mysql的 End-To-End Exactly-Once中遇到以下2个问题:
> 1:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
> Communications link failure during commit(). Transaction resolution unknown.
> 2:org.apache.flink.streaming.runtime.tasks.TimerException:
> org.apache.flink.streaming.runtime.tasks.ExceptionInChainedOperatorException:
> Could not forward element to next operator
>
> 已经做了一个最简单的复现问题的demo,求指教
> git clone https://github.com/lusecond/flink_help --depth=1
>
>
> 测试过程中,发现继承TwoPhaseCommitSinkFunction类的4个重写方法beginTransaction、preCommit、commit、abort
> 分别在不同的线程工作,怀疑过因为线程切换导致jdbc的事务提交出问题,已经做过相关测试排除不是由此引起的问题