技术收藏-开发篇

Kafka与操作系统适配性研究

2019-04-24  本文已影响0人  analanxingde

在《Apache Kafka实战》一书中,提到了操作系统与Kafka的适配性。涉及的的epoll与select问题,以及linux零拷贝技术较为重要,因此在此处将操作系统相关特性部分进行记录。

clients 底层网络库的设计

Kafka 新版本 clients 在设计底层网络库时采用了 Java 的 Selector 机制

而关于epoll和select,select 函数就属于I/O多路复用模型,而epoll采用的是I/O多路复用模型+信号驱动I/O通常情况下我们会认为epoll 比 select 模型高级。毕竟 epoll 取消了轮询机制,取而代之的是回调机制( callback )。这样当底层连接 Socket 数较多时,可以避免很多无意义的 CPU 时间浪费。

因此,在 Linux 上部署Kafka 要比在 Windows 上部署能够得到更高效的 I/O处理性能 。

数据网络传输效率

Kafka 这种应用必然需要大量地通过网络与磁盘进行数据传输 ,而大部分这样的操作都是通过Java 的FileChannel.transferTo 方法实现的。

鉴于很多公司目前的生产环境中还没有正式上线 Java 8 ,因而在 Windows 平台上部署Kafka 将很有可能无法享受到零拷贝技术带来的高效数据传输。

上一篇下一篇

猜你喜欢

热点阅读