回覆列表
  • 1 # 獨山海鈴蘭面板管理

    我曾經使用過RabbitMQ和正在使用kafka,姑且說下!

    RabbitMQ和kafka都是分散式訊息中介軟體系統!作為生產者和消費者的解耦合元件,保證服務之間的通訊行為!

    但是RabbitMQ主要的側重點為broker,希望提供生產者和消費者之間訊息傳遞的良好保證和訊息資料的持久化!而kafka核心點是為生產者的大量資料提供支援,支援線上消費者和可能掛掉的消費者,在儘量低延遲的情況下發送訊息!

    都能對訊息資料進行持久化,都實現了producer和comsumer之間的解耦,都擁有超高的吞吐量和穩定性!

    所以,可以把rabbitMQ和kafka看做一個層級的東西!

    而zeroMQ是一個十分輕量級的訊息系統,在高吞吐量和低延遲方面效能更優,但是zeroMQ並不實現生產者和消費者之間的解耦合,而且zeroMQ的使用也十分困難,並不具備元件化,服務化的標準,需要自己實現socket等,同時,zeroMQ並不支援持久化訊息資料,雖然效能高,但是訊息丟失帶來的影響也是不可估量的!

    所以zeroMQ並不是嚴格的訊息中介軟體系統!不過效能,吞吐量,實時性卻是最高的!

    關於kafka,rabbitmq的使用有需要的童鞋可以進一步交流,更多的技術分享,敬請關注。。。

  • 2 # 夕陽雨晴

    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要強,兩者在這方面沒有可比性。

  • 中秋節和大豐收的關聯?
  • 奧迪Q2生產了嗎,效能怎麼樣?