首先要明确一个问题,MySQL是否支持跨Connection的事务呢?
举个例子:假设Connection A执行事务 T 到commit()方法的时候,Connection A断开(A即为 TwoPhaseCommitSinkFunction 中的pendingCommitTransactions),那么之后建立的一个新的Connection B是否可以commit事务T呢?(我目前的经验是不能,如果可以,请指出) 如果不能,那么MySQL不适用于用2PC这种方法来做端到端一致性的保证 尝试使用幂等来解决端到端的一致性 ------------------ 原始邮件 ------------------ 发件人: "user-zh" <[hidden email]>; 发送时间: 2020年7月31日(星期五) 上午9:21 收件人: "user-zh"<[hidden email]>; 主题: 回复: Re: Flink实现Kafka到Mysql的 End-To-End Exactly-Once中遇到的问题 我参考你的代码,也遇到了同样的问题,有什么好的方法吗? [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的事务提交出问题,已经做过相关测试排除不是由此引起的问题 |
Free forum by Nabble | Edit this page |