当前位置: 首页 > news >正文

茶叶电子商务网站建设的结论称多县公司网站建设

茶叶电子商务网站建设的结论,称多县公司网站建设,广东工程承包网站,中国免费建设网站网址背景 TwoPhaseCommitSinkFunction是flink中基于二阶段事务提交和检查点机制配合使用实现的精准一次的输出数据汇#xff0c;但是想要实现精准一次的输出#xff0c;实际使用中需要注意几个方面#xff0c;否则不仅仅达不到精准一次输出#xff0c;反而可能导致数据丢失但是想要实现精准一次的输出实际使用中需要注意几个方面否则不仅仅达不到精准一次输出反而可能导致数据丢失连至少一次的语义都不能达到 TwoPhaseCommitSinkFunction注意事项 TwoPhaseCommitSinkFunction是通过在两阶段提交协议实现的事务大概简化为一下步骤 1 在收到检查点分隔符的时候开启事务并把记录都写到开启的事务中 2. 开始进行状态的保存时把检查点id对应的事务结束掉做好准备提交的准备并开启下一个事务 public void snapshotState(FunctionSnapshotContext context) throws Exception {// this is like the pre-commit of a 2-phase-commit transaction// we are ready to commit and remember the transactioncheckState(currentTransactionHolder ! null,bug: no transaction object when performing state snapshot);long checkpointId context.getCheckpointId();LOG.debug({} - checkpoint {} triggered, flushing transaction {},name(),context.getCheckpointId(),currentTransactionHolder);//当前检查点对应的事务做好准备比如进行stream.flush等准备好提交事务preCommit(currentTransactionHolder.handle);// 把当前检查点id对应的事务添加到状态中pendingCommitTransactions.put(checkpointId, currentTransactionHolder);LOG.debug({} - stored pending transactions {}, name(), pendingCommitTransactions);currentTransactionHolder beginTransactionInternal();LOG.debug({} - started new transaction {}, name(), currentTransactionHolder);// 把当前检查点id对应的事务添加到状态中state.clear();state.add(new State(this.currentTransactionHolder,new ArrayList(pendingCommitTransactions.values()),userContext));} 收到检查点完成的通知notify方法提交第二步中检查点id对应的事务注意这一步不是每次flink在进行检查点的时候都会通知这种情况下某一次的notify方法就需要把前几次的事务一起进行提交了另外如果提交某个检查点的事务失败那么应用会重启并且在重启后的initSnapshot方法中再次进行事务提交如果还是失败这个过程一直持续 public final void notifyCheckpointComplete(long checkpointId) throws Exception {IteratorMap.EntryLong, TransactionHolderTXN pendingTransactionIterator pendingCommitTransactions.entrySet().iterator();Throwable firstError null;while (pendingTransactionIterator.hasNext()) {Map.EntryLong, TransactionHolderTXN entry pendingTransactionIterator.next();Long pendingTransactionCheckpointId entry.getKey();TransactionHolderTXN pendingTransaction entry.getValue();if (pendingTransactionCheckpointId checkpointId) {continue;}LOG.info({} - checkpoint {} complete, committing transaction {} from checkpoint {},name(),checkpointId,pendingTransaction,pendingTransactionCheckpointId);logWarningIfTimeoutAlmostReached(pendingTransaction);try {// 提交事务commit(pendingTransaction.handle);} catch (Throwable t) {//事务失败时记录异常后面会把异常抛出导致应用重启if (firstError null) {firstError t;}}LOG.debug({} - committed checkpoint transaction {}, name(), pendingTransaction);// 事务成功后移除当前的事务pendingTransactionIterator.remove();}if (firstError ! null) {// 事务提交失败会抛出异常导致job异常中止throw new FlinkRuntimeException(Committing one of transactions failed, logging first encountered failure,firstError);}}总结 1。事务不能提交失败如果失败会导致作业失败然后重新提交如果最终没有成功提交那么数据会丢失 2。数据库服务端的事务超时时间不能设置太短不能仅仅大于检查点的间隔大小原因是上面说的flink有可能丢失检查点完成后的通知消息所以服务端的事务超时时间要设置的足够大.
http://www.pierceye.com/news/570120/

相关文章:

  • 网站开发用到哪些技术中国建设集团官网
  • 淘宝客网站建设多少钱可以做微课ppt模板 网站有哪些内容
  • 太原做网站的wordpress 手机端api
  • 网站开发与rest老河口网站设计
  • 广州个人网站搭建二次元wordpress博客
  • 企业网站用什么cms比较好平面设计在哪里学
  • 网站什么也没动怎么不收录啦wordpress边栏扩大尺寸
  • 专业的聊城网站建设成都品牌策划设计公司
  • 新开神途手游发布网站wordpress 获取分类地址
  • 网站建设亿码酷出名5万站霸屏
  • 仿制网站建设山东关键词优化联系电话
  • 律所网站建设国队男子接力赛有哪些做短租的网站
  • 常用的网站推广方法制作简历模板网站
  • c2c网站有哪些网站可以先做代码么
  • 阿里云简单网站建设wordpress+调整+行距
  • 想自己做网站推广郴州网站建设哪里比较好
  • 实用网站推荐小程序权限超时
  • 济源市建设工程管理处网站wordpress模板搜索功能404
  • 成都三网合一网站建设网站广告收费标准
  • 网站制作咨询电话网站托管费用多少
  • 做网站 需求怎么写成都优化网站源头厂家
  • 我买了一个备案网站 可是公司注销了学服装设计的就业方向
  • 网站后台上传不了图片请人做网站需要注意什么条件
  • 建网站哪家好案例网页设计感悟与体会
  • 做网站要实名吗深圳货拉拉
  • 综合门户网站是什么意思建设机械网站
  • 主题资源网站建设作业高级网站开发工程师考试题
  • 含山建设局网站免费的个人简历模板文档
  • 门户网站建设推荐高校英文网站建设 文献综述
  • 织梦网站备案免费咨询网站