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

一、高性能设计

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

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

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

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

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

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

二、零拷贝

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

三、面试题

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

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

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

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

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

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

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

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

相关推荐
短剑重铸之日2 分钟前
《设计模式》第十一篇:总结
java·后端·设计模式·总结
User_芊芊君子23 分钟前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件
分布式·深度学习·神经网络·wpf
若鱼191925 分钟前
SpringBoot4.0新特性-Observability让生产环境更易于观测
java·spring
觉醒大王34 分钟前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
努力学编程呀(๑•ี_เ•ี๑)42 分钟前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
酷酷的崽79844 分钟前
CANN 开源生态解析(四):`cann-dist-train` —— 构建高效可扩展的分布式训练引擎
分布式·开源
码农小卡拉1 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
向上的车轮1 小时前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net
Dragon Wu1 小时前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
跳动的梦想家h1 小时前
环境配置 + AI 提效双管齐下
java·vue.js·spring