大資料教程系列之Kafka和activemq對比
好程式設計師大資料培訓分享之Kafka
和
activemq
對比,
背景分析訊息佇列這個型別的元件一直是非常重要的元件,當經過兩家企業後我就很堅信這個結論了。佇列這種東西,最廣泛的作用還是在於解耦,寬泛一點的說,它可以將不同部門的工作內容進行有效的整合,基於一個約定好的格式,就可以兩頭互相不干擾的進行開發。可以說這個生產消費的思想不僅僅適用於程式也適用於非常多的地方。
目前對於我看到的來說,kafka更多的還是做為一個資料來源,資料橋樑的作用,不同業務之間的溝通。比如需要實時接入A部門的業務資料的話,就會有這樣的手段:
落地到HDFS的資料會用來進行一些演算法上的離線處理,而kafka端則是給需要實時性的消費方。其實資料的消費方式無非也就實時和離線兩種方式。
Kafka和activemq對比
相比過去經常使用的activemq,kafka確實非常的不同,做一個對比來深化印象
對比 |
Activemq |
Kafka |
介面協議 |
遵守JMS規範,各語言支援較好 |
沒有遵循標準MQ介面協議,使用較為複雜 |
吞吐量 |
較低,磁碟隨機讀寫 |
較高,磁碟順序讀寫 |
遊標位置 |
AMQ來管理,無法讀取歷史資料 |
客戶端自己管理,不樂意甚至重新讀一遍也行 |
HA機制 |
主從複製,競爭鎖的方式來選舉新的主節點 |
和hadoop系列產品一樣,由zk管理所有節點 |
說到底,主要還是做為kafka的消費方,能感受到最大的不同還是在於幾個:
1.
吞吐量確實非常高
2.可以重讀歷史資料
但是也有一些缺點:
1.概念上比較複雜,相對於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消費端的常用引數
Properties props = new Properties();
//zk伺服器的地址 xxxx:2181
props.put("zookeeper.connect", zookeeper);
//組的名稱,區別於其他group否則會接收不到資料
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");
//重點引數,是否每次都從offset最前面開始讀起
props.put("auto.offset.reset", "smallest");
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2694107/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料流處理:Flume、Kafka和NiFi對比大資料KafkaNifi
- 訊息佇列的作用以及kafka和activemq的對比佇列KafkaMQ
- 大資料教程系列之大資料概念大資料
- 好程式設計師大資料培訓分享之Ambari和ClouderaManager對比程式設計師大資料Cloud
- Hadoop大資料平臺之Kafka部署Hadoop大資料Kafka
- 好程式設計師大資料教程Scala系列之類程式設計師大資料
- Python教程:sort和sorted實現排序之對比Python排序
- 好程式設計師大資料教程Scala系列之繼承程式設計師大資料繼承
- 關於使用Spring Boot的Kafka教程 - DZone大資料Spring BootKafka大資料
- 譯文 | 科普:Pulsar 和 Kafka 架構對比Kafka架構
- 大資料6.1 - 實時分析(storm和kafka)大資料ORMKafka
- 好程式設計師大資料教程分享Scala系列之閉包程式設計師大資料
- 好程式設計師大資料教程Scala系列之方法的巢狀和方法多型程式設計師大資料巢狀多型
- 好程式設計師大資料教程Scala系列之隱式轉換和隱式引數程式設計師大資料
- 大資料教程分享實用的大資料之陣列大資料陣列
- 訊息中介軟體部署及比較:rabbitMQ、activeMQ、zeroMQ、rocketMQ、Kafka、redisMQKafkaRedis
- 5. ActiveMQ平滑遷移到kafkaMQKafka
- RabbitMQ與Kafka選型對比MQKafka
- 大資料03-整合 Flume 和 Kafka 收集日誌大資料Kafka
- MySQL 資料對比MySql
- Hadoop大資料實戰系列文章之HiveHadoop大資料Hive
- Hadoop大資料實戰系列文章之ZookeeperHadoop大資料
- Hadoop大資料實戰系列文章之HBaseHadoop大資料
- 深度對比Apache CarbonData、Hudi和Open Delta三大開源資料湖方案Apache
- 好程式設計師大資料學習路線之Logstach與flume對比程式設計師大資料
- 資料庫系列:MySQL引擎MyISAM和InnoDB的比較資料庫MySql
- Oracle、NoSQL和NewSQL 資料庫技術對比OracleSQL資料庫
- Oracle和MySQL資料庫CTAS等操作對比OracleMySql資料庫
- 大資料儲存系統對比:Ceph VS Gluster大資料
- 大資料框架對比 - Hadoop、Spark、Storm、Samza、Spark、Flink大資料框架HadoopSparkORM
- SQL與Pandas大資料分析效能對比(Haki Benita)SQL大資料
- ActiveMQ之StompMQ
- 報表工具選型對比系列 - 大報表
- 好程式設計師大資料教程分享Scala系列之Option_偏函式_String程式設計師大資料函式
- 好程式設計師分享大資料入門教程:Hadoop和spark的效能比較程式設計師大資料HadoopSpark
- 三種大資料流處理框架選擇比較:Apache Kafka流、Apache Spark流和Apache Flink - quora大資料框架ApacheKafkaSpark
- Pinterest使用MemQ、Singer和Kafka最佳化大資料攝取RESTMQKafka大資料
- Java NIO系列教程(五) 通道之間的資料傳輸Java