<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>基础 on PlumePHP</title><link>https://plumephp.com/tags/%E5%9F%BA%E7%A1%80/</link><description>Recent content in 基础 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Fri, 14 Aug 2026 18:01:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E5%9F%BA%E7%A1%80/index.xml" rel="self" type="application/rss+xml"/><item><title>01. Kafka 核心概念与架构</title><link>https://plumephp.com/kafka-introduction/</link><pubDate>Fri, 14 Aug 2026 18:01:00 +0800</pubDate><guid>https://plumephp.com/kafka-introduction/</guid><description>&lt;h2 id="1-核心概念"&gt;1. 核心概念&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Producer ──→ Kafka Cluster ──→ Consumer
 │
 ┌────────────┼────────────┐
 │ │ │
 Broker 1 Broker 2 Broker 3
 │ │ │
 └── Topic: orders ────────┘
 ├── Partition 0 (Leader@B1, Replica@B2)
 ├── Partition 1 (Leader@B2, Replica@B3)
 └── Partition 2 (Leader@B3, Replica@B1)
&lt;/code&gt;&lt;/pre&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;概念&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Topic&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;消息分类主题&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Partition&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Topic 的分片，每个有序不可变日志&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Broker&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Kafka 服务器节点&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Producer&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;消息生产者&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Consumer&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;消息消费者，通过 Consumer Group 消费&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Offset&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;消息在 Partition 中的位置&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;ISR&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;In-Sync Replicas，同步副本集合&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="2-日志存储"&gt;2. 日志存储&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Topic: orders / Partition: 0

 offset: 0 1 2 3 4
 │ │ │ │ │
 ┌┴──────┴───────┴───────┴───────┴───────┐
 │ msg0 │ msg1 │ msg2 │ msg3 │ msg4 │ ← log segment
 └───────┴───────┴───────┴───────┴───────┘
 0.log

offset 是 Partition 内的局部有序，不是全局有序
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="3-为什么快"&gt;3. 为什么快？&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;技术&lt;/th&gt;
					&lt;th&gt;作用&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;顺序写磁盘&lt;/td&gt;
					&lt;td&gt;比随机写快 1000x&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;零拷贝&lt;/td&gt;
					&lt;td&gt;sendfile，内核直接发数据到 socket&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;批量压缩&lt;/td&gt;
					&lt;td&gt;压缩后传输，减少网络 IO&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Page Cache&lt;/td&gt;
					&lt;td&gt;OS 缓存热点数据&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="延伸阅读"&gt;延伸阅读&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://plumephp.com/kafka-producer/"&gt;生产者 API 与发送语义&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>