消息中间件篇之Kafka-高性能设计

一、高性能设计

消息分区:不受单台服务器的限制,可以不受限的处理更多的数据。

顺序读写:磁盘顺序读写,提升读写效率。

页缓存:把磁盘中的数据缓存到内存中,把对磁盘的访问变为对内存的访问。

**零拷贝:**减少上下文切换及数据拷贝。

消息压缩:减少磁盘IO和网络IO。

分批发送:将消息打包批量发送,减少网络开销。

二、零拷贝

  1. 我们在linux操作系统下进行的普通拷贝。(4次拷贝)
  1. kafka使用的零拷贝。(2次拷贝)

三、面试题

面试官:Kafka中实现高性能的设计有了解过嘛?

候选人:Kafka 高性能,是多方面协同的结果,包括宏观架构、分布式存储、ISR 数据同步、以及高效的利用磁盘、操作系统特性等。主要体现有这么几点:

消息分区:不受单台服务器的限制,可以不受限的处理更多的数据。

顺序读写:磁盘顺序读写,提升读写效率。

页缓存:把磁盘中的数据缓存到内存中,把对磁盘的访问变为对内存的访问。

零拷贝:减少上下文切换及数据拷贝。

消息压缩:减少磁盘IO和网络IO。

分批发送:将消息打包批量发送,减少网络开销。

相关推荐
黄敬峰2 分钟前
React 待办事项 Todos 从零到一:组件化思维、状态管理与父子通信一次讲透
面试
qq_150841994 分钟前
SQL的insert和update二合一指令
java·数据库·sql
2601_964702899 分钟前
Claude Opus 5 API 开发实战:对话、文本生成与结构化输出
java·服务器·前端
Sayuanni%312 分钟前
Spring IOC
java·spring·rpc
风景的人生16 分钟前
流式输出与springboot中的响应式编程
java·spring boot·ai编程
长不胖的路人甲35 分钟前
斐波那契查找Java 实现 + 完整思路
java·开发语言
FogLetter1 小时前
嘘!WebSocket正在“偷听”你的网络请求——全双工通信的魔法
前端·面试
祐樹1 小时前
1987年5月25日下午15-17点出生性格、运势和命运
java
正儿八经的少年1 小时前
Spring 事务保证数据一致性
java·数据库·spring
程序员爱钓鱼1 小时前
Rust HashMap 详解:键值存储、查询、更新与统计
后端·面试·rust