閱界資訊

Kafka 三節點集羣:只訂閱一個 broker 會丟消息嗎?能用 VIP訂閱 嗎?

閱閱界編輯部1閱讀8分鐘

刷到《Kafka 三節點集羣:只訂閱一個 broker 會丟消息嗎?能用 VIP訂閱 嗎?》,內容很實在,值得細讀。這篇把它的關鍵做法提煉出來,幫你省下通讀的時間,結尾附行動建議。

轉載請註明出處: 兩個問題,一句話答案: 集羣有三個實例,消費者只填其中一個地址,會丟消息嗎? —— 不會。但這不代表這樣配是安全的。 填一個 VIP(把三個實例收斂成一個入口)行不行? —— 作爲"問路入口"可以,作爲"數據地址"不行。 這兩個判斷都來自同一個底層機制。理解了機制,兩個問題其實是同一個問題。 一、先建立正確的模型:Kafka 的數據不是按"節點"劃分的 絕大多數關於"要不要連三個地址"的焦慮,都來自一個錯誤的心智模型: 三個節點 = 數據被切成三份,分別存在三個節點上 = 連一個只能拿到三分之一 這個模型屬於傳統的分片型消息隊列, 不屬於 Kafka 。

轉載請註明出處: 兩個問題,一句話答案: 集羣有三個實例,消費者只填其中一個地址,會丟消息嗎? —— 不會。但這不代表這樣配是安全的。 填一個 VIP(把三個實例收斂成一個入口)行不行? —— 作爲"問路入口"可以,作爲"數據地址"不行。 這兩個判斷都來自同一個底層機制。理解了機制,兩個問題其實是同一個問題。 一、先建立正確的模型:Kafka 的數據不是按"節點"劃分的 絕大多數關於"要不要連三個地址"的焦慮,都來自一個錯誤的心智模型: 三個節點 = 數據被切成三份,分別存在三個節點上 = 連一個只能拿到三分之一 這個模型屬於傳統的分片型消息隊列, 不屬於 Kafka 。Kafka 的真實組織方式是這樣的: 概念 作用 和"節點"的關係 Topic 消息的邏輯分類 與節點無關 Partition(分區) 數據的 物理切分單位 ,有序、可追加、獨立偏移量 一個 topic 的多個分區會散佈在不同節點上 Replica(副本) 同一分區的多份拷貝,用於容災 分佈在不同節點,但只有一個是 Leader Leader 該分區 唯一 可讀寫的副本所在的那個節點 這纔是數據真正的"落腳點" Broker(實例) 承載若干分區 Leader/Follower 的進程 只是"房東",不是"數據分片" Consumer Group 消費關係的組織單位,分區在組內成員間分攤 決定"誰讀哪個分區",與連了幾個節點無關 關鍵結論一:數據的歸屬單位是分區,節點的暴露方式是"分區 Leader 在哪臺"。

轉載請註明出處: 兩個問題,一句話答案: 集羣有三個實例,消費者只填其中一個地址,會丟消息嗎? —— 不會。但這不代表這樣配是安全的。 填一個 VIP(把三個實例收斂成一個入口)行不行? —— 作爲"問路入口"可以,作爲"數據地址"不行。 這兩個判斷都來自同一個底層機制。理解了機制,兩個問題其實是同一個問題。 一、先建立正確的模型:Kafka 的數據不是按"節點"劃分的 絕大多數關於"要不要連三個地址"的焦慮,都來自一個錯誤的心智模型: 三個節點 = 數據被切成三份,分別存在三個節點上 = 連一個只能拿到三分之一 這個模型屬於傳統的分片型消息隊列, 不屬於 Kafka 。Kafka 的真實組織方式是這樣的: 概念 作用 和"節點"的關係 Topic 消息的邏輯分類 與節點無關 Partition(分區) 數據的 物理切分單位 ,有序、可追加、獨立偏移量 一個 topic 的多個分區會散佈在不同節點上 Replica(副本) 同一分區的多份拷貝,用於容災 分佈在不同節點,但只有一個是 Leader Leader 該分區 唯一 可讀寫的副本所在的那個節點 這纔是數據真正的"落腳點" Broker(實例) 承載若干分區 Leader/Follower 的進程 只是"房東",不是"數據分片" Consumer Group 消費關係的組織單位,分區在組內成員間分攤 決定"誰讀哪個分區",與連了幾個節點無關 關鍵結論一:數據的歸屬單位是分區,節點的暴露方式是"分區 Leader 在哪臺"。 所以"我連了第幾臺機器"這個概念,在 Kafka 里根本不具備決定讀取範圍的能力。

轉載請註明出處: 兩個問題,一句話答案: 集羣有三個實例,消費者只填其中一個地址,會丟消息嗎? —— 不會。但這不代表這樣配是安全的。 填一個 VIP(把三個實例收斂成一個入口)行不行? —— 作爲"問路入口"可以,作爲"數據地址"不行。 這兩個判斷都來自同一個底層機制。理解了機制,兩個問題其實是同一個問題。 一、先建立正確的模型:Kafka 的數據不是按"節點"劃分的 絕大多數關於"要不要連三個地址"的焦慮,都來自一個錯誤的心智模型: 三個節點 = 數據被切成三份,分別存在三個節點上 = 連一個只能拿到三分之一 這個模型屬於傳統的分片型消息隊列, 不屬於 Kafka 。Kafka 的真實組織方式是這樣的: 概念 作用 和"節點"的關係 Topic 消息的邏輯分類 與節點無關 Partition(分區) 數據的 物理切分單位 ,有序、可追加、獨立偏移量 一個 topic 的多個分區會散佈在不同節點上 Replica(副本) 同一分區的多份拷貝,用於容災 分佈在不同節點,但只有一個是 Leader Leader 該分區 唯一 可讀寫的副本所在的那個節點 這纔是數據真正的"落腳點" Broker(實例) 承載若干分區 Leader/Follower 的進程 只是"房東",不是"數據分片" Consumer Group 消費關係的組織單位,分區在組內成員間分攤 決定"誰讀哪個分區",與連了幾個節點無關 關鍵結論一:數據的歸屬單位是分區,節點的暴露方式是"分區 Leader 在哪臺"。 所以"我連了第幾臺機器"這個概念,在 Kafka 里根本不具備決定讀取範圍的能力。 二、訂閱一個實例地址,會發生什麼?

轉載請註明出處: 兩個問題,一句話答案: 集羣有三個實例,消費者只填其中一個地址,會丟消息嗎? —— 不會。但這不代表這樣配是安全的。 填一個 VIP(把三個實例收斂成一個入口)行不行? —— 作爲"問路入口"可以,作爲"數據地址"不行。 這兩個判斷都來自同一個底層機制。理解了機制,兩個問題其實是同一個問題。 一、先建立正確的模型:Kafka 的數據不是按"節點"劃分的 絕大多數關於"要不要連三個地址"的焦慮,都來自一個錯誤的心智模型: 三個節點 = 數據被切成三份,分別存在三個節點上 = 連一個只能拿到三分之一 這個模型屬於傳統的分片型消息隊列, 不屬於 Kafka 。Kafka 的真實組織方式是這樣的: 概念 作用 和"節點"的關係 Topic 消息的邏輯分類 與節點無關 Partition(分區) 數據的 物理切分單位 ,有序、可追加、獨立偏移量 一個 topic 的多個分區會散佈在不同節點上 Replica(副本) 同一分區的多份拷貝,用於容災 分佈在不同節點,但只有一個是 Leader Leader 該分區 唯一 可讀寫的副本所在的那個節點 這纔是數據真正的"落腳點" Broker(實例) 承載若干分區 Leader/Follower 的進程 只是"房東",不是"數據分片" Consumer Group 消費關係的組織單位,分區在組內成員間分攤 決定"誰讀哪個分區",與連了幾個節點無關 關鍵結論一:數據的歸屬單位是分區,節點的暴露方式是"分區 Leader 在哪臺"。 所以"我連了第幾臺機器"這個概念,在 Kafka 里根本不具備決定讀取範圍的能力。 二、訂閱一個實例地址,會發生什麼?爲什麼夠用?

行動建議:收藏這篇,下次碰到同類問題先翻出來對照做一遍。好經驗的價值,在於用起來。你最近被這類問題卡過嗎? 來源|博客園《Kafka 三節點集羣:只訂閱一個 broker 會丟消息嗎?能用 VIP訂閱 嗎?》,https://www.cnblogs.com/zjdxr-up/p/23007196.html

程式員技術場技术后端

評論(0)

暫無評論,來搶第一條。