📚 分类
kafka
🕵🏽‍♀️ 问题描述
kafka中实现高性能的设计有了解过嘛
👨‍🏫 问题讲解
✔ 消息分区: 不受单台服务器的限制,可以不受限的处理更多的数据
✔ 顺序读写: 磁盘顺序读写,提升读写效率(高于随机读写,寻址过程比较耗时)
✔ 页缓存: 把磁盘中的数据缓存到内存中,把对磁盘的访问变为对内存的访问
✔ 零拷贝: 减少上下文切换及数据拷贝
✔ 消息压缩: 减少磁盘I0和网络I0
✔ 分批发送: 将消息打包批量发送,减少网络开销(默认16k,最大条数,默认时间)

❒ 传统数据拷贝

用户态(发起read) -> 内核态(PageCache) -> 硬件(消息) -> 内核态(dma拷贝硬盘数据到PageCache) -> 用户态 -> 内核态(cpu写数据到Socket缓冲区) -> 硬件(dma拷贝数据到网卡设备)

❒ 零拷贝

数据首先通过DMA(Direct Memory Access)从磁盘拷贝到内核态,然后再通过零拷贝机制直接传输到网络卡中。
🏳️‍🌈 问题总结
分区,顺序,页缓存。
零拷,压缩,分批送。
📖 问题信息
📈 浏览次数:15 | 📅 更新时间:2025-12-01 22:01:55
📦 创建信息
🏷️ ID:77 | 📅 创建时间:2024-11-09 23:59:12