1. 程式人生 > >kafka分割槽和消費者執行緒的關係

kafka分割槽和消費者執行緒的關係

A、當有兩個分割槽時,兩臺消費者的執行緒數等於分割槽數,則兩臺伺服器平均消耗兩個分割槽的資料;
每個消費者配置的執行緒數為2:共4個執行緒物件:(每個消費者執行緒消費一個分割槽的資料)
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
B 、當有兩個分割槽時,兩臺消費者的執行緒數為1 時,消費者伺服器A消耗0和1 分割槽的資料,消費者伺服器B消耗2和3分割槽的資料;
這裡寫圖片描述
這裡寫圖片描述
C、只有兩個分割槽時:只有一臺消費者伺服器且消費者伺服器執行緒數4 時(執行緒數大於分割槽數):
此時共有4個執行緒物件,每個執行緒消費一個分割槽資料。並行進行消費。
這裡寫圖片描述


這裡寫圖片描述
D:結論:
1、要使生產者分割槽中的資料合理消費,消費者的執行緒物件和分割槽數保持一致,多餘的執行緒不會進行消費(會浪費)
2、消費者預設即為一個執行緒物件 ;
3、達到合理消費最好滿足公司:消費者伺服器數*執行緒數 = partition個數

相關推薦

kafka分割槽消費者執行關係

A、當有兩個分割槽時,兩臺消費者的執行緒數等於分割槽數,則兩臺伺服器平均消耗兩個分割槽的資料; 每個消費者配置的執行緒數為2:共4個執行緒物件:(每個消費者執行緒消費一個分割槽的資料)

windows 使用關鍵段條件變數實現的生產者消費者執行同步

 關鍵段比較簡單,呼叫函式如下: VOID InitializeCriticalSection( LPCRITICAL_SECTION );//初始化一個關鍵程式碼段 VOID EnterCriticalSection( LPCRITICAL_SECTION);//獲取

如何確定Kafka分割槽數、keyconsumer執行數 【原創】如何確定Kafka分割槽數、keyconsumer執行

【原創】如何確定Kafka的分割槽數、key和consumer執行緒數   在Kafak中國社群的qq群中,這個問題被提及的比例是相當高的,這也是Kafka使用者最常碰到的問題之一。本文結合Kafka原始碼試圖對該問題相關的因素進行探討。希望對大家有所幫助。

如何確定Kafka分割槽數、keyconsumer執行數、以及不消費問題解決

在Kafak中國社群的qq群中,這個問題被提及的比例是相當高的,這也是Kafka使用者最常碰到的問題之一。本文結合Kafka原始碼試圖對該問題相關的因素進行探討。希望對大家有所幫助。 怎麼確定分割槽數? “我應該選擇幾個分割槽?”——如果你在Kafka中國社群的群裡,

Kafka分割槽消費者關係

public Map<String, List<TopicPartition>> assign(Map<String, Integer> partitionsPerTopic,

程序執行關係及區別

1.定義 程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動;程序是系統進行資源分配和排程的一個獨立單位。 執行緒是程序的一個實體,是CPU排程和分派的基本單位;它是比程序更小的能獨立執行的基本單位;同屬一個程序的不同執行緒之間共享程序所擁有的全部資源。 一個

Linux程序執行關係淺析 (轉載)

  程序概念   程序是表示資源分配的基本單位,又是排程執行的基本單位。例如,使用者執行自己的程式,系統就建立一個程序,併為它分配資源,包括各種表格、記憶體空間、磁碟空間、I/O裝置等。然後,把該程序放人程序的就緒佇列。程序排程程式選中它,為它分配CPU以及其它有關資源,該程序才真正執行。所以,

java主執行結束執行結束之間的關係

情況1:正常情況下,主執行緒啟動了子執行緒,主執行緒、子執行緒各自執行,彼此不受影響。 當你在run一個Java application的時候,這個時候系統會開一個程序。然後這個程序啟動了Main執行緒。Java程序確定虛擬機器中沒有執行緒執行的時候,退出程序。或者也可以用

PerformSelector 執行關係

PerformSelector 相關 - (id)performSelector:(SEL)aSelector; - (id)performSelector:(SEL)aSelector withObject:(id)object; - (id)performSelector:(SEL)aSel

高併發執行關係

        高併發 ≠ 多執行緒   多執行緒是完成任務的一種方法,高併發是系統執行的一種狀態,通過多執行緒有助於系統承受高併發狀態的實現。   高併發是一種系統執行過程中遇到的一種“短時間內遇到大量操作請求”的情況,主要發生在web系統集中大量訪問或者socket埠

Android 程序執行關係

簡單介紹一下,程序和執行緒的關係。 Processes and Threads 程序和執行緒之間的關係. 一個程序裡面可以有多個執行緒. 程序如果掛了, 執行緒就沒了 程序優先順序 Foreground process 前臺程序 優先級

執行間通訊、等待喚醒機制、生產者消費者問題(Lock,Condition)、停止執行守護執行執行優先順序

1  執行緒間通訊 1.1  執行緒間通訊 其實就是多個執行緒在操作同一個資源,但是操作的動作不同。 比如一個執行緒給一個變數賦值,而另一個執行緒列印這個變數。 1.2  等待喚醒機制 wait():將執行緒等待,釋放了CPU執行權,同時將執行緒物件儲存到執行緒池中。 n

python threading中處理主程序執行關係

之前用python的多執行緒,總是處理不好程序和執行緒之間的關係。後來發現了join和setDaemon函式,才終於弄明白。下面總結一下。 1.使用join函式後,主程序會在呼叫join的地方等待子執行緒結束,然後才接著往下執行。 join使用例項如下: import t

Windows主執行執行關係

在Windows下最重要的兩個概念,一個是程序,一個是執行緒。先來說下程序和執行緒的關係,程序是靜態的,它相當於一個存放資料的空間,是放在記憶體中的,可以理解為一個工廠。而執行緒是動態來執行執行緒中的程式碼的,相當於工廠中的工人。看到執行程式碼你可能就會想到CPU了,沒錯,執

Kafka(二)Kafka生產者消費者模型

col ace ont 1.5 kafka fff spa sof oss 消費者模型消費模型有分區消費模型、組消費模型。分區消費模型:可以看到在這種模型下分區和消費者是對應的,為了保證最大效率通常一個分區對應一個消費者。生產者模型Kafka(二)Kafka生產者和消費者模

Daemon執行Join執行

1、Daemon執行緒   Daemon執行緒稱為守護執行緒(非常喜歡這個名字)。執行緒一旦被設定為守護執行緒,當非守護執行緒結束,守護執行緒即使沒有執行完,也必須隨之全部結束。例如我們曾經玩兒過的坦克大戰,一旦守護的老巢完蛋了,其它守護坦克沒死也要結束。   Daemo

Kafka的多工執行消費測試

程式碼: package com.weichai.kafka; import kafka.consumer.ConsumerIterator; import kafka.consumer.KafkaStream; /** * 消費者的執行緒執行 * @author lhy * @d

程序、執行執行基本概念

程序、執行緒和多執行緒基本概念 一、概念 1、程序(process) 狹義定義:程序就是一段程式的執行過程。 廣義定義:程序是一個具有一定獨立功能的程式關於某個資料集合的一次執行活動。它是作業系統動態執行的基本單元,在傳統的作業系統中,程序既是基本的分配單元,也是基本的執行單元。

多程序執行的優缺點

在Linux下程式設計多用多程序程式設計少用多執行緒程式設計。          IBM有個傢伙做了個測試,發現切換執行緒context的時候,windows比linux快一倍多。進出最快的鎖(windows2k的

struts1 struts2 執行安全

首先我們必須要先了解servlet的生命週期: 伺服器只建立每個servlet的單一例項,首次建立servlet時,它的init方法會被呼叫,因此,init是放置一次性設定程式碼的地方,之後,針對每個使用者的請求都會建立一個執行緒,該執行緒呼叫前面建立的例項方法。多個併發請求一般會導致多