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

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

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的事务提交出问题,已经做过相关测试排除不是由此引起的问题
Reply | Threaded
Open this post in threaded view
|

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

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

Best wishes,
沈磊

卢伟楠 <[hidden email]> 于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的事务提交出问题,已经做过相关测试排除不是由此引起的问题
Reply | Threaded
Open this post in threaded view
|

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

残翅2008
对于第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"<[hidden email]&gt;;
发送时间:&nbsp;2019年12月26日(星期四) 中午11:35
收件人:&nbsp;"user-zh"<[hidden email]&gt;;

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



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

Best wishes,
沈磊

卢伟楠 <[hidden email]&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的事务提交出问题,已经做过相关测试排除不是由此引起的问题
Reply | Threaded
Open this post in threaded view
|

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

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

> 在 2020年1月3日,下午3:13,残翅2008 <[hidden email]> 写道:
>
> 对于第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"<[hidden email]&gt;;
> 发送时间:&nbsp;2019年12月26日(星期四) 中午11:35
> 收件人:&nbsp;"user-zh"<[hidden email]&gt;;
>
> 主题:&nbsp;Re: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题
>
>
>
> 是否可以尝试使用幂等来解决 端到端的一致性
>
> Best wishes,
> 沈磊
>
> 卢伟楠 <[hidden email]&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的事务提交出问题,已经做过相关测试排除不是由此引起的问题

Reply | Threaded
Open this post in threaded view
|

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

1101300123
我参考你的代码,也遇到了同样的问题,有什么好的方法吗?



[hidden email]
 
发件人: 卢伟楠
发送时间: 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 <[hidden email]> 写道:
>
> 对于第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"<[hidden email]&gt;;
> 发送时间:&nbsp;2019年12月26日(星期四) 中午11:35
> 收件人:&nbsp;"user-zh"<[hidden email]&gt;;
>
> 主题:&nbsp;Re: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题
>
>
>
> 是否可以尝试使用幂等来解决 端到端的一致性
>
> Best wishes,
> 沈磊
>
> 卢伟楠 <[hidden email]&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的事务提交出问题,已经做过相关测试排除不是由此引起的问题