詳解Kafka與ActiveMQ的區別與聯絡!

千鋒武漢發表於2021-04-25

      在大資料開發過程中我們經常會使用到訊息佇列型別的元件,比較常見的就是Kafka與ActiveMQ,但很多同學鬧不懂兩者的區別和聯絡,今天小千就來帶大家分析一下。

      一、背景分析

      訊息佇列這個型別的元件一直是非常重要的元件,當經過兩家企業後我就很堅信這個結論了。佇列這種東西,最廣泛的作用還是在於解耦,寬泛一點的說,它可以將不同部門的工作內容進行有效的整合,基於一個約定好的格式,就可以兩頭互相不干擾的進行開發。可以說這個生產消費的思想不僅僅適用於程式也適用於非常多的地方。

      目前對於我看到的來說,Kafka更多的還是做為一個資料來源,資料橋樑的作用,不同業務之間的溝通。比如需要實時接入A部門的業務資料的話,就會有這樣的手段:

1

      落地到HDFS的資料會用來進行一些演算法上的離線處理,而Kafka端則是給需要實時性的消費方。其實資料的消費方式無非也就實時和離線兩種方式。

      二、Kafka和ActiveMQ對比

      相比過去經常使用的ActiveMQ,Kafka確實非常的不同,做一個對比來深化印象

2

      說到底,做為kafka的消費方,能感受到最大的不同還是在於幾個:

      1. 吞吐量確實非常高

      2.可以重讀歷史資料

      3.但是也有一些缺點:概念上比較複雜,相對於AMQ只需要知道ip和佇列名你就能獲得資料,Kafka使用起來非常繁瑣

      三、Kafka的基本概念(摘錄)

      1.Broker:訊息中介軟體處理結點,一個Kafka節點就是一個broker,多個broker可以組成一個Kafka叢集。

      2.Topic:一類訊息,例如page view日誌、click日誌等都可以以topic的形式存在,Kafka叢集能夠同時負責多個topic的分發。

      3.Partition:topic物理上的分組,一個topic可以分為多個partition,每個partition是一個有序的佇列。

      4.Segment:partition物理上由多個segment組成。

      5.offset:每個partition都由一系列有序的、不可變的訊息組成,這些訊息被連續的追加到partition中。partition中的每個訊息都有一個連續的序列號叫做offset,用於partition唯一標識一條訊息.

      四、Kafka消費端的常用引數

3

      看過上面的介紹之後,相信大家對Kafka與ActiveMQ都有一定的瞭解了吧 。想了解更多大資料開發技巧,歡迎關注我喲!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2769705/,如需轉載,請註明出處,否則將追究法律責任。

相關文章