pulsar和kafka对比

### pulsar大小

- entry大小

1. pulsar_entry_size_sum / pulsar_entry_size_count = entry 总大小 / entry 总数量 = 平均每个 entry 多大

- msg大小

1. 前情提要: Producer 发给 Broker 的确可能是一个 batch,但这个 batch 里面会带 batch metadata,Broker 能知道里面有多少条 message。

2. 计算平均每个entry包含多少消息数 = 平均每个 entry 多大 / 平均每条 message 多大

3. pulsar_throughput_in / pulsar_rate_in = 写入吞吐字节数 / 写入消息条数 = 平均每条 message 多大

- 通常一个 batch ≈ 一个 BookKeeper entry ,未启用 batching 时一条消息 → 一个 entry

### kafka大小

- Producer 发送数据到 broker 时,不是一条一条裸发,而是组成 ProduceRequest,里面包含一个或多个 record batch。

- Kafka Producer 会先按 topic-partition 聚合消息,组成 record batch,再把一个或多个 batch 放进 ProduceRequest 发给 broker。这样可以减少网络请求、提升顺序写效率、提高压缩率和整体吞吐。

- 平均每个 produce request 大小(就是record batch,类似entry) = BytesInPerSec / ProduceRequestsPerSec

- 平均每个 request 包含消息数 = MessagesInPerSec / ProduceRequestsPerSec

- msg大小

1. BytesInPerSec / MessagesInPerSec

### kafka、pulsar类比

- 业务层一条消息:

Pulsar message      ≈ Kafka record/message

- 客户端攒起来的一批:

Pulsar batch        ≈ Kafka record batch

- 服务端存储单位:

Pulsar BK entry      ≈ Kafka log 中的一段 record batch

- Pulsar entry 是 BookKeeper ledger 的写入单位 (pulsar是发多少就是entry多少)

Kafka record batch 是 Kafka log 里的批记录格式(kafka是需要攒 batch再写入的)

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容