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

网站设计北京新大连开发区天气预报

网站设计北京新,大连开发区天气预报,网店运营推广平台,大庆城市投资建设网站目录 1. 事务核心组件 1.1 幂等性生产者#xff08;Idempotent Producer#xff09; 1.2 事务协调器#xff08;TransactionCoordinator#xff09; 1.3 事务日志#xff08;Transaction Log#xff09; 2. 事务执行流程 2.1 事务初始化 2.2 发送消息 2.3 事务提… 目录 1. 事务核心组件 1.1 幂等性生产者Idempotent Producer 1.2 事务协调器TransactionCoordinator 1.3 事务日志Transaction Log 2. 事务执行流程 2.1 事务初始化 2.2 发送消息 2.3 事务提交两阶段提交 2.4 事务完成 3. 消费者事务隔离 3.1 隔离级别 3.2 实现机制 4. 异常处理与容错 4.1 生产者宕机 4.2 协调器宕机 4.3 Broker宕机 5. 关键源码解析 5.1 事务协调器核心逻辑 5.2 两阶段提交实现 5.3 消费者过滤未提交消息 6. 事务配置与使用 6.1 生产者配置 6.2 消费者配置 7. 事务性能与限制 总结 幂等生产者通过ProducerID和SequenceNumber去重避免消息重复源码见ProducerStateManager。事务协调器TransactionCoordinator 每个事务绑定一个Coordinator处理BEGIN_TRANSACTION、COMMIT/ABORT请求。事务状态存储在内部Topic __transaction_state中通过TransactionStateManager管理。 两阶段提交 阶段1标记事务为“预提交”写入所有参与分区的数据。阶段2写入COMMIT标记到事务日志消费者仅可见已提交的事务消息。 Kafka事务机制通过幂等性生产者、事务协调器TransactionCoordinator 和 两阶段提交2PC 实现跨分区的原子性写入确保消息要么全部提交要么全部丢弃。以下是核心实现机制 1. 事务核心组件 1.1 幂等性生产者Idempotent Producer 作用确保单分区内消息不重复。实现机制 PIDProducer ID每个生产者实例唯一由Broker分配。Sequence Number每个消息的单调递增序列号Broker校验序列号连续性。源码类ProducerStateManager管理PID与序列号。 1.2 事务协调器TransactionCoordinator 作用管理事务生命周期协调事务提交或中止。实现机制 每个事务绑定一个协调器通过事务ID哈希选择Broker。维护事务状态机TransactionState存储在内部Topic __transaction_state。源码类TransactionCoordinator、TransactionStateManager。 1.3 事务日志Transaction Log 作用持久化事务状态防止协调器宕机后数据丢失。存储位置内部Topic __transaction_state每个分区对应一个协调器。数据格式事务ID、PID、状态PrepareCommit、Completed等、超时时间。 2. 事务执行流程 2.1 事务初始化 生产者初始化事务 调用initTransactions()向协调器注册事务ID获取PID。协调器在__transaction_state中记录事务元数据。 2.2 发送消息 发送事务消息 生产者发送消息时携带PID、序列号、事务ID。Broker将消息写入日志但标记为未提交对消费者不可见。 2.3 事务提交两阶段提交 阶段1Prepare Commit 生产者向协调器发送EndTxnRequest协调器将事务状态置为PrepareCommit并持久化到事务日志。阶段2Commit Markers写入 协调器向所有涉及的分区Leader发送WriteTxnMarkers请求Leader在日志中写入事务提交标记Control Batch。 2.4 事务完成 Broker将事务消息标记为已提交消费者可读取需配置isolation.levelread_committed。 3. 消费者事务隔离 3.1 隔离级别 read_committed仅消费已提交的事务消息跳过未提交的Control Batch。read_uncommitted消费所有消息默认模式不保证事务原子性。 3.2 实现机制 消费者在拉取消息时Broker根据隔离级别过滤未提交的事务消息。源码逻辑KafkaConsumer的fetcher模块解析Control Batch决定是否跳过消息。 4. 异常处理与容错 4.1 生产者宕机 事务超时transaction.timeout.ms协调器自动中止未完成的事务。新生产者实例需重新初始化事务旧事务状态由协调器清理。 4.2 协调器宕机 事务日志持久化在__transaction_state新协调器加载日志恢复状态。 4.3 Broker宕机 副本机制保证事务日志和消息日志的高可用Leader切换后继续处理事务。 5. 关键源码解析 5.1 事务协调器核心逻辑 //事务状态管理TransactionStateManager public class TransactionStateManager {// 持久化事务状态到__transaction_statedef appendTransactionToLog(transactionState: TransactionState): Unit {val records List(new SimpleRecord(transactionState.toBytes))transactionLog.append(records)} } 5.2 两阶段提交实现 // 协调器发送提交标记TransactionCoordinator private def sendTxnMarkers(transactionState: TransactionState): Unit { // 向所有分区Leader发送WriteTxnMarkersRequest transactionState.partitions.foreach { partition val request new WriteTxnMarkersRequest.Builder(partition, Commit)sendRequestToLeader(request)} } 5.3 消费者过滤未提交消息 // 消费者拉取消息过滤ConsumerFetcherThread private def filterCommittedMessages(records: ConsumerRecords): ConsumerRecords { if (isolationLevel IsolationLevel.READ_COMMITTED) {records.filter(_.controlBatchType ! ControlBatchType.ABORT) } else {records } } 6. 事务配置与使用 6.1 生产者配置 props.put(enable.idempotence, true); // 开启幂等性 props.put(transactional.id, my-tx-id); // 必须设置事务ID props.put(transaction.timeout.ms, 60000); // 事务超时时间 6.2 消费者配置 props.put(isolation.level, read_committed); // 仅消费已提交消息 7. 事务性能与限制 性能开销事务引入两阶段提交和日志持久化吞吐量下降约20%-30%。限制 事务仅支持单会话一个生产者实例。事务消息的消费者必须使用Kafka Consumer API不支持旧版基于ZooKeeper的消费者。 总结 Kafka事务通过以下机制实现跨分区的原子性 幂等性生产者避免单分区消息重复。事务协调器与两阶段提交确保所有分区要么全部提交要么全部回滚。事务日志持久化保障协调器故障恢复后状态一致。消费者隔离级别控制事务消息的可见性。 正确配置后Kafka事务可支持金融级场景的精确一次Exactly-Once语义
http://www.hkea.cn/news/14395891/

相关文章:

  • 自己做图片上传网站百度怎么做网站
  • 昆明网站建设搜q.479185700小程序是什么意思
  • 做代理需要网站吗优化大师的三大功能
  • 医疗网站建设行业现状网站服务流程
  • 外贸网站该怎么做家居企业网站建设如何
  • 你的网站尚未进行备案关键词排名优化易下拉技术
  • 门户网站建设中标结果杭州专业网站营销
  • 网站的视频怎么下载广州网站建设联系信科海珠
  • 东莞网站优化方法有哪些股票网站模板
  • 怎么在ftp看网站后台地址wordpress comment_form
  • 信息科技有限公司网站建设网站打不开
  • 德清网站制作汽车网站网页设计
  • 网站降权如何恢复php的网站数据库如何上传
  • 潍坊网站建设wfyckj行列资讯工程造价信息网
  • 门户网站是以什么为主上海协会网站建设
  • 上海城建设计院网站wordpress判断使用不同模板
  • 三网合一的网站怎么做20个优秀的响应式设计html5网站模板
  • 天津公司网站制作wordpress本站主题
  • cms网站群在线查企业信息查询平台
  • 提供微信网站建设静态网站开发技术
  • 旅游网站建设的好处网站引流怎么做的
  • 清溪镇网站建设公司网站文档怎么加图片不显示不出来
  • 高端网站建设谷美开发游戏的职业叫什么
  • 北京的网站建设收费标准自己创建app
  • 系统之家win7纯净版广州seo网络优化公司
  • 厦门网站建设工作室网监大队让网站备案
  • 做地图特效的网站成都注册公司多少钱
  • 做效果图网站有哪些装饰公司简介内容
  • 无为县住房建设局网站首页logo免费一键生成
  • 房地产做网站公司文化建设