kafka支持的特性 kafka的可用性


kafka支持的特性 kafka的可用性

文章插图
kafka支持的特性如下:
1、消息持久化和缓存 。Kafka高度依赖文件系统来存储和缓存消息 。一般的人都认为“磁盘是缓慢的”,这使得人们对“持久化结构提供具有竞争性的性能”这样的结论持有怀疑态度 。实际上,磁盘比人们预想的快很多也慢很多,这取决于它们如何被使用;一个好的磁盘结构设计可以使之跟网络速度一样快 。
2、消息读取 。Kafka在读方面使用了sendfile这个高级系统函数,也即zero-copy技术 , 感兴趣的同学可以去阅读IBM的文章 。这项技术通过减少系统拷贝次数,极大地提高了数据传输的效率 。
【kafka支持的特性 kafka的可用性】3、端到端的批量压缩 。在许多场景下,瓶颈实际上不是CPU而是网络 。这在需要在多个数据中心之间发送消息的数据流水线的情况下更是如此 。当然,用户可以不需要Kafka的支持而发送压缩后的消息,但是这会导致非常差的压缩率 。高效的压缩需要将多个消息一块儿压缩而不是对每一个消息进行压缩 。理想情况下 , 这可以在端到端的情况下实现,数据会先被压缩,然后被生产者发送,并且在服务端也是保持压缩状态,只有在最终的消费者端才会被解压缩 。