Kafka选型 操作系统、磁盘、磁盘容量、宽带

阻塞式 I/O、非阻塞式 I/O、I/O 多路复用、信号驱动
I/O 和异步 I/O。每种 I/O 模型都有各自典型的使用场景,比如 Java 中 Socket 对象的阻塞模式和非阻塞模式就对应于前两种模型;而 Linux 中的系统调用 select 函数就属于 I/O多路复用模型;大名鼎鼎的 epoll 系统调用则介于第三种和第四种模型之间;至于第五种模型,其实很少有 Linux 系统支持,反而是 Windows 系统提供了一个叫 IOCP 线程模型属于这一种。
你不必详细了解每一种模型的实现细节,通常情况下我们认为后一种模型会比前一种模型要高级,比如 epoll 就比 select 要好,了解到这一程度应该足以应付我们下面的内容了。
说了这么多,I/O 模型与 Kafka 的关系又是什么呢?实际上 Kafka 客户端底层使用了 Java的 selector,selector 在 Linux 上的实现机制是 epoll,而在 Windows 平台上的实现机制是 select。因此在这一点上将 Kafka 部署在 Linux 上是有优势的,因为能够获得更高效的
I/O 性能。

在 Linux 部署 Kafka 能够享受到零拷贝技术所带来的
快速数据传输特性。

Windows 平台上部署 Kafka 只适合于个人测试或用于功能验证,
千万不要应用于生产环境。

关于磁盘选择另一个经常讨论的话题就是到底是否应该使用磁盘阵列(RAID)。使用
RAID 的两个主要优势在于:
提供冗余的磁盘存储空间
提供负载均衡

对于kafka来说这都有实现,不太重要

根据消息数和预留时间估计磁盘大小,建议预留磁盘使用量的百分之30%

为了防止大量丢包的问题,需要巨大的宽带网络,单机在700Mbps左右

本网页由快兔兔AI采集器生成,目的为演示采集效果,若侵权请及时联系删除。

原文链接:https://blog.csdn.net/jj89929665/article/details/123525564

更多内容