1. 程式人生 > >想比較傳統訊息系統,kafka可以很好的保證有序性~

想比較傳統訊息系統,kafka可以很好的保證有序性~

傳統的佇列在伺服器上儲存有序的訊息,如果多個consumers同時從這個伺服器消費訊息,伺服器就會以訊息儲存的順序向consumer分發訊息。雖然伺服器按順序釋出訊息,但是訊息是被非同步的分發到各consumer上,所以當訊息到達時可能已經失去了原來的順序,這意味著併發消費將導致順序錯亂。為了避免故障,這樣的訊息系統通常使用“專用consumer”的概念,其實就是隻允許一個消費者消費訊息,當然這就意味著失去了併發性。

在這方面Kafka做的更好,通過分割槽的概念,Kafka可以在多個consumer組併發的情況下提供較好的有序性和負載均衡。將每個分割槽分只分發給一個consumer組,這樣一個分割槽就只被這個組的一個consumer消費,就可以順序的消費這個分割槽的訊息。因為有多個分割槽,依然可以在多個consumer組之間進行負載均衡。注意consumer組的數量不能多於分割槽的數量,也就是有多少分割槽就允許多少併發消費。

Kafka只能保證一個分割槽之內訊息的有序性,在不同的分割槽之間是不可以的,這已經可以滿足大部分應用的需求。如果需要topic中所有訊息的有序性,那就只能讓這個topic只有一個分割槽,當然也就只有一個consumer組消費它。

相關推薦

比較傳統訊息系統,kafka可以保證有序性

傳統的佇列在伺服器上儲存有序的訊息,如果多個consumers同時從這個伺服器消費訊息,伺服器就會以訊息儲存的順序向consumer分發訊息。雖然伺服器按順序釋出訊息,但是訊息是被非同步的分發到各consumer上,所以當訊息到達時可能已經失去了原來的順序,這意

NIO與傳統IO的區別,的比喻

傳統的socket IO中,需要為每個連線建立一個執行緒,當併發的連線數量非常巨大時,執行緒所佔用的棧記憶體和CPU執行緒切換的開銷將非常巨大。使用NIO,不再需要為每個執行緒建立單獨的執行緒,可以用一個含有限數量執行緒的執行緒池,甚至一個執行緒來為任意數量的連線服務。由於執行緒數量小於連線數量,所以每個執行

分散式釋出訂閱訊息系統Kafka

文章目錄 Kafka概述 Kafka架構及核心概念 Kafka單節點單Broker部署之Zookeeper安裝 單節點單Broker部署 單節點多Broker部署及使用 Kafka容錯性測試

分散式訊息系統Kafka初步

終於可以寫kafka的文章了,Mina的相關文章我已經做了索引,在我的部落格中置頂了,大家可以方便的找到。從這一篇開始分散式訊息系統的入門。 在我們大量使用分散式資料庫、分散式計算叢集的時候,是否會遇到這樣的一些問題: l  我想分析一下使用者行為(pageviews

高併發面試必問:分散式訊息系統Kafka簡介

Kafka是分散式釋出-訂閱訊息系統。它最初由LinkedIn公司開發,之後成為Apache專案的一部分。Kafka是一個分散式的,可劃分的,冗餘備份的永續性的日誌服務。它主要用於處理活躍的流式資料。 在大資料系統中,常常會碰到一個問題,整個大資料是由各個子系統組成,資料需

分散式訊息系統Kafka簡介

Kafka是分散式釋出-訂閱訊息系統。它最初由LinkedIn公司開發,之後成為Apache專案的一部分。Kafka是一個分散式的,可劃分的,冗餘備份的永續性的日誌服務。它主要用於處理活躍的流式資料。在大資料系統中,常常會碰到一個問題,整個大資料是由各個子系統組成,資料需要在各

分散式釋出訂閱訊息系統 Kafka

kafka是一種高吞吐量的分散式釋出訂閱訊息系統,她有如下特性: 通過O(1)的磁碟資料結構提供訊息的持久化,這種結構對於即使數以TB的訊息儲存也能夠保持長時間的穩定效能。 高吞吐量:即使是非常普通的硬體kafka也可以支援每秒數十萬的訊息。 支援通過kafka伺服器

釋出訂閱訊息系統--kafka的解析。

Kafka介紹: Kafka是由Apache軟體基金會開發的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分散式釋出訂閱訊息系統,它可以處理消費者規模的網站中的所有動作流資料。這種動作(網頁瀏覽,搜尋和其他使用者的行動)是在現代網路上的許多社會功

分散式訊息系統Kafka介紹

轉載自董的部落格,文章地址:http://dongxicheng.org/search-engine/kafka/ 1、  概述 Kafka是Linkedin於2010年12月份開源的訊息系統,它主要用於處理活躍的流式資料。活躍的流式資料在web網站應用中非常常見,這些

大資料系列之分散式釋出訂閱訊息系統Kafka(一)Kafka簡介,組成,叢集安裝

1.Kafka簡介   Kafka如同JMS(Java Message Service)一樣,是一箇中間件,在異構系統間通訊,為不同的系統之間提供服務。我們知道JMS通過佇列(一對一)與主題(一對多)兩種形式提供服務,而Kafka則通過主題(topic),來給一組消費者提供

大資料系列之分散式釋出訂閱訊息系統Kafka(四)Kafka與Flume的3種整合

前面我們已經介紹了Flume,現在我們將Kafka與Flume整合 先看一下Flume的結構組成:            我們可以發現,將Flume與Kafka進行整合無非3種情況,Flume作為生產者——Sink輸出到Kafka,Flume作為消費者——Source接

分散式釋出訂閱訊息系統 Kafka 架構設計

底層API class SimpleConsumer { /* Send fetch request to a broker and get back a set of messages. */ public ByteBufferMessageSet fetch(FetchRequest re

高吞吐量訊息系統kafka

現在基本上大資料的場景中都會有kafka的身影,那麼為什麼這些場景下要用kafka而不用其他傳統的訊息佇列呢?例如rabbitmq。主要的原因是因為kafka天然的百萬級TPS,以及它對接其他大資料元件的流處理功能,比如可以更好的對接Apache storm。本文只是討論kafka作為訊息佇列的功能及一些用法

Kafka-API中介軟體MQ訊息佇列在Maven專案中的配置使用操作 (分散式釋出訂閱訊息系統)

一、 Maven依賴 <dependency> <groupId>com.foriseland.fjf.mq</groupId> <artifactId>fjf-mq-kafka</artifactId> &

Kafka訊息系統基礎知識索引

我們在《360度測試:KAFKA會丟資料麼?其高可用是否滿足需求?》這篇文章中,詳細說明了KAFKA是否適合用在業務系統中。但有些朋友,還不知道KAFKA為何物,以及它為何存在。這在工作和麵試中是比較吃虧的,因為不知道什麼時候起,KAFKA似乎成了一種工程師的必備技能。 一些觀念的修正 從 0.9 版本開

淺談實時流平臺Kafka訊息系統設計

文章目錄 Kafka解決什麼問題? Kafka的流處理 Kafka如何實現負載均衡Load balancing Kafka的資料單位是什麼?怎麼傳輸? 消費者如何解析生產者的訊息? 如何保證一個pa

【技術世界】分享大資料領域技術、包括但不限於Storm、Spark、Hadoop等分散式計算系統Kafka、MetaQ等分散式訊息系統, MongoDB等NoSQL,PostgreSQL等RDBMS,SQL優

技術世界 分享大資料領域技術、包括但不限於Storm、Spark、Hadoop等分散式計算系統,Kafka、MetaQ等分散式訊息系統, MongoDB等NoSQL,PostgreSQL等RDBMS,SQL優...

幾種分散式訊息系統比較(old)

0 引言 隨著網際網路行業的發展和IT技術在行業內的廣泛應用,許多網際網路企業的伺服器每天產生海量的日誌。如天翼閱讀平臺每天產生的PV日誌有上億條;淘寶網每天的使用者行為日誌達數TB大小。如何高效地收

系統技術非業餘研究 » nmon(Linux下用的效能監測工具)介紹

The nmon tool is designed for AIX and Linux performance specialists to use for monitoring and analyzing performance data, including: * CPU utiliz