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

如何做汽车团购网站上海网站维护

如何做汽车团购网站,上海网站维护,网上服务大厅登录平台,企业宣传册模板排版背景 在flink中可以通过使用事务性数据汇实现精准一次的保证,本文基于Kakfa的事务处理来看一下在Flink 内部如何实现基于两阶段提交协议的事务性数据汇. flink kafka事务性数据汇的实现 1。首先在开始进行快照的时候也就是收到checkpoint通知的时候,在…

背景

在flink中可以通过使用事务性数据汇实现精准一次的保证,本文基于Kakfa的事务处理来看一下在Flink 内部如何实现基于两阶段提交协议的事务性数据汇.

flink kafka事务性数据汇的实现

1。首先在开始进行快照的时候也就是收到checkpoint通知的时候,在snapshot方法中会开启一个新的事务,代码如下:

   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);preCommit(currentTransactionHolder.handle);// 调用kafkaProducer.flush();清理上一个事务的状态(注意不是提交),只是确保前一个事务的所有资源清理完毕pendingCommitTransactions.put(checkpointId, currentTransactionHolder);LOG.debug("{} - stored pending transactions {}", name(), pendingCommitTransactions);
// 调用producer.beginTransaction();方法开启一个新的kafka事务currentTransactionHolder = beginTransactionInternal();LOG.debug("{} - started new transaction '{}'", name(), currentTransactionHolder);state.clear();state.add(new State<>(this.currentTransactionHolder,new ArrayList<>(pendingCommitTransactions.values()),userContext));}

2.其次在JobManager通知检查点完成的通知方法,也就是notifyCheckpointComplete方法中提交事务

Iterator<Map.Entry<Long, TransactionHolder<TXN>>> pendingTransactionIterator =pendingCommitTransactions.entrySet().iterator();Throwable firstError = null;while (pendingTransactionIterator.hasNext()) {Map.Entry<Long, TransactionHolder<TXN>> entry = pendingTransactionIterator.next();Long pendingTransactionCheckpointId = entry.getKey();TransactionHolder<TXN> pendingTransaction = entry.getValue();if (pendingTransactionCheckpointId > checkpointId) {continue;}LOG.info("{} - checkpoint {} complete, committing transaction {} from checkpoint {}",name(),checkpointId,pendingTransaction,pendingTransactionCheckpointId);logWarningIfTimeoutAlmostReached(pendingTransaction);try {//调用producer.commitTransaction()方法提交事务commit(pendingTransaction.handle);} catch (Throwable t) {if (firstError == null) {firstError = t;}}LOG.debug("{} - committed checkpoint transaction {}", name(), pendingTransaction);pendingTransactionIterator.remove();}if (firstError != null) {throw new FlinkRuntimeException("Committing one of transactions failed, logging first encountered failure",firstError);}

至此,一个两阶段提交的flink事务性数据汇完成了,这个事务性数据汇可以构成端到端一致性的一部分

http://www.yayakq.cn/news/250683/

相关文章:

  • 做外贸网站报价单西安做网站公司8
  • 视频网站亏钱为什么还要继续做太平洋建设官方网站
  • 镇江网站优化哪家好小程序模板下载安装
  • 苏州晶体公司网站学会网站 建设
  • 网站会员充值做哪个分录深圳网站设计哪家快
  • 衡水网站建设最新报价网站设计公司 杭州
  • 制作网页站点的具体流程案例建设外贸网站费用
  • 官方网站制作公司工程建设标准化期刊是什么级别
  • 临西做网站报价个人网站建设需求说明书
  • h5响应式网站技术discuz 网站搬家
  • 国内免费工厂网站建设wordpress裁剪失败
  • 苏州有做网站的公司吗湘潭网站建设优化技术
  • 重庆网站建设必选承越网站建设 ui设计公司
  • 关于wap网站模板下载如何自己建立网站
  • 大连企业公司网站建设河南网站建设公司
  • 成都做网站建设公司wordpress留言反馈
  • 招远网站定制网站界面设计中的版式设计有哪些
  • 类似百度的网站百度中心
  • 阿里云 网站空间织梦网站列表
  • 旅游网站建设的背景wordpress主题 儿童
  • 英文网站的外部链接 建设淮南网站建设好
  • 企业营销网站建设系统淄博周村学校网站建设定制
  • 上海手机网站建设电话网站建设费用预算表
  • 北仑网站推广信誉好的合肥网站建设
  • 学校门户网站建设方案wordpress多个边栏
  • 给个网站谢谢了秦皇岛房管局官网网上查询
  • 网站优化入门免费教程手机选择网站
  • 榆林做网站公司想开网站建设公司
  • 湖南省建设厅领导分工优化师
  • 东莞 网站建设 保健品申请注册自媒体平台