欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

RabbitMQZeroMQ和Kafka是一個層級的東西嗎

江奕云2年前15瀏覽0評論

RabbitMQZeroMQ和Kafka是一個層級的東西嗎?

RabbitMQ、ZeroMQ和Kafka是一個層級的東西么?這個還真心不清楚,對于RabbitMQ和Kafka在項目開發中或多或少使用過,而ZeroMQ之前都沒有聽說過,更何談了解使用呢?接下來我就簡單說說我對RabbitMQ和Kafka的認識,以及相關的使用場景。

先來說說RabbitMQ,這個使用的業務場景比較廣泛,所有傳統意義上的消息隊列解耦的情況幾乎都可以用RabbitMQ來解決。記得之前做用戶登錄的活躍人次統計時,由于初期的設計不支持這種報表查詢,而且報表的定制特性不適合通過基礎框架來做開發,隨后的方案就是通過解析登錄日志文件來生成用戶的登錄記錄,然后通過RabbitMQ將解析完成的記錄發給做報表的團隊,完成任務間的協同開發。定時任務解析、RabbitMQ解耦,較為從容的完成了月登錄人次的統計,是應用解耦使用的典型場景。經過實踐,RabbitMQ在三個比較典型的場景中使用較多,即異步處理、應用解耦、流量削峰。

再來說說Kafka,Kafka設計的初衷就是處理日志的,可以看做是一個日志系統,針對性很強。其典型的應用場景是用戶訪問日志的存儲和使用,結合storm流組件進行訪問日志、點擊流日志的實時流量,以及其他類似的業務場景。典型的使用場景有:日志收集、消息系統、用戶活動跟蹤、運營指標、流式處理等。kafka的特性如下:

- 高吞吐量、低延遲:kafka每秒可以處理幾十萬條消息,它的延遲最低只有幾毫秒,每個topic可以分多個partition, consumer group 對partition進行consume操作。- 可擴展性:kafka集群支持熱擴展- 持久性、可靠性:消息被持久化到本地磁盤,并且支持數據備份防止數據丟失- 容錯性:允許集群中節點失敗(若副本數量為n,則允許n-1個節點失敗)- 高并發:支持數千個客戶端同時讀寫

綜合考慮,RabbitMq比kafka的對比如下:RabbitMq比Kafka成熟,在可用性上,穩定性上,可靠性上,RabbitMq超過Kafka;Kafka設計的初衷就是處理日志的,可以看做是一個日志系統,針對性很強,所以它并沒有具備一個成熟MQ應該具備的特性;Kafka的性能(吞吐量、tps)比RabbitMq要強,兩者在這方面沒有可比性。

作者:夕陽雨晴,歡迎關注我的頭條號:偶爾美文,主流Java,為你講述不一樣的碼農生活。

java 流量單位,RabbitMQZeroMQ和Kafka是一個層級的東西嗎