kafka的可用性 kafka支持的特性


kafka的可用性 kafka支持的特性

文章插圖
kafka支持的特性如下:
【kafka的可用性 kafka支持的特性】1、消息持久化和緩存 。Kafka高度依賴文件系統來存儲和緩存消息 。一般的人都認為“磁盤是緩慢的”,這使得人們對“持久化結構提供具有競爭性的性能”這樣的結論持有懷疑態度 。實際上,磁盤比人們預想的快很多也慢很多,這取決于它們如何被使用;一個好的磁盤結構設計可以使之跟網絡速度一樣快 。
2、消息讀取 。Kafka在讀方面使用了sendfile這個高級系統函數,也即zero-copy技術,感興趣的同學可以去閱讀IBM的文章 。這項技術通過減少系統拷貝次數,極大地提高了數據傳輸的效率 。
3、端到端的批量壓縮 。在許多場景下,瓶頸實際上不是CPU而是網絡 。這在需要在多個數據中心之間發送消息的數據流水線的情況下更是如此 。當然,用戶可以不需要Kafka的支持而發送壓縮后的消息,但是這會導致非常差的壓縮率 。高效的壓縮需要將多個消息一塊兒壓縮而不是對每一個消息進行壓縮 。理想情況下,這可以在端到端的情況下實現,數據會先被壓縮,然后被生產者發送,并且在服務端也是保持壓縮狀態,只有在最終的消費者端才會被解壓縮 。