大數(shù)據(jù)中如何實現(xiàn)Kafka和activemq對比,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的沁陽網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!Kafka和activemq對比,背景分析消息隊列這個類型的組件一直是非常重要的組件,當經(jīng)過兩家企業(yè)后我就很堅信這個結(jié)論了。隊列這種東西,最廣泛的作用還是在于解耦,寬泛一點的說,它可以將不同部門的工作內(nèi)容進行有效的整合,基于一個約定好的格式,就可以兩頭互相不干擾的進行開發(fā)??梢哉f這個生產(chǎn)消費的思想不僅僅適用于程序也適用于非常多的地方。目前對于我看到的來說,kafka更多的還是做為一個數(shù)據(jù)源,數(shù)據(jù)橋梁的作用,不同業(yè)務(wù)之間的溝通。比如需要實時接入A部門的業(yè)務(wù)數(shù)據(jù)的話,就會有這樣的手段:
落地到HDFS的數(shù)據(jù)會用來進行一些算法上的離線處理,而kafka端則是給需要實時性的消費方。其實數(shù)據(jù)的消費方式無非也就實時和離線兩種方式。
Kafka和activemq對比
相比過去經(jīng)常使用的activemq,kafka確實非常的不同,做一個對比來深化印象
對比 | Activemq | Kafka |
接口協(xié)議 | 遵守JMS規(guī)范,各語言支持較好 | 沒有遵循標準MQ接口協(xié)議,使用較為復雜 |
吞吐量 | 較低,磁盤隨機讀寫 | 較高,磁盤順序讀寫 |
游標位置 | AMQ來管理,無法讀取歷史數(shù)據(jù) | 客戶端自己管理,不樂意甚至重新讀一遍也行 |
HA機制 | 主從復制,競爭鎖的方式來選舉新的主節(jié)點 | 和hadoop系列產(chǎn)品一樣,由zk管理所有節(jié)點 |
說到底,主要還是做為kafka的消費方,能感受到大的不同還是在于幾個:
1. 吞吐量確實非常高2.可以重讀歷史數(shù)據(jù)但是也有一些缺點:1.概念上比較復雜,相對于AMQ只需要知道ip和隊列名你就能獲得數(shù)據(jù),Kafka使用起來非常繁瑣
Kafka的基本概念(摘錄)
1.Broker:消息中間件處理結(jié)點,一個Kafka節(jié)點就是一個broker,多個broker可以組成一個Kafka集群。2.Topic:一類消息,例如page view日志、click日志等都可以以topic的形式存在,Kafka集群能夠同時負責多個topic的分發(fā)。3.Partition:topic物理上的分組,一個topic可以分為多個partition,每個partition是一個有序的隊列。4.Segment:partition物理上由多個segment組成。5.offset:每個partition都由一系列有序的、不可變的消息組成,這些消息被連續(xù)的追加到partition中。partition中的每個消息都有一個連續(xù)的序列號叫做offset,用于partition唯一標識一條消息.
Kafka消費端的常用參數(shù)
Properties props = new Properties();
//zk服務(wù)器的地址 xxxx:2181
props.put("zookeeper.connect", zookeeper);
//組的名稱,區(qū)別于其他group否則會接收不到數(shù)據(jù)
props.put("group.id", groupId);
props.put("zookeeper.session.timeout.ms", "8000");
props.put("zookeeper.connection.timeout.ms", "20000");
props.put("zookeeper.sync.time.ms", "2000");
props.put("auto.commit.interval.ms", "5000");
props.put("rebalance.max.retries", "5");
props.put("rebalance.backoff.ms", "60000");
props.put("auto.commit.enable", "true");
//重點參數(shù),是否每次都從offset最前面開始讀起
props.put("auto.offset.reset", "smallest");
看完上述內(nèi)容,你們掌握大數(shù)據(jù)中如何實現(xiàn)Kafka和activemq對比的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!