<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Exactly-Once on PlumePHP</title><link>https://plumephp.com/tags/exactly-once/</link><description>Recent content in Exactly-Once on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sun, 27 Sep 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/exactly-once/index.xml" rel="self" type="application/rss+xml"/><item><title>Kafka 事务与 Exactly-Once 语义：从幂等生产者到端到端精确一次</title><link>https://plumephp.com/kafka-transactions/</link><pubDate>Sun, 27 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-transactions/</guid><description>&lt;p&gt;在分布式消息系统中，&lt;strong&gt;「至少一次（at-least-once）」是默认语义&lt;/strong&gt;：生产者重试会导致重复消息，消费者崩溃重启会导致重复消费。大多数场景下靠幂等消费兜底即可。但订单支付、账户转账这类&lt;strong&gt;强一致业务&lt;/strong&gt;，需要真正的 &lt;strong&gt;Exactly-Once（精确一次）&lt;/strong&gt;。Kafka 从 0.11 起引入事务机制，让「多分区原子写入」「消费-处理-产出原子化」成为可能。本文从&lt;strong&gt;幂等生产者&lt;/strong&gt;讲起，深入&lt;strong&gt;事务协调器与两阶段提交&lt;/strong&gt;，再到 &lt;strong&gt;read-process-write&lt;/strong&gt; 端到端模式与 &lt;strong&gt;Outbox 集成&lt;/strong&gt;，帮你判断何时用、怎么用、代价是什么。&lt;/p&gt;</description></item><item><title>流处理测试全景指南：Kafka 管道与 Flink 作业的端到端验证</title><link>https://plumephp.com/stream-processing-testing/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0800</pubDate><guid>https://plumephp.com/stream-processing-testing/</guid><description>&lt;p&gt;批处理系统的测试方法论已经相当成熟——给定输入文件，运行作业，对比输出即可验证。但流处理（Stream Processing）引入了一套全新的复杂性：数据没有边界（unbounded）、时间语义多层交织、乱序与延迟成为常态、Exactly-Once 保证涉及分布式协调。本指南从 Kafka 管道测试到 Flink 有状态作业验证，覆盖流系统测试的完整方法论。&lt;/p&gt;</description></item></channel></rss>