日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Kafka是開源事件流軟件,可允許您構建事件驅動系統。雖然有其他指南,但我希望專注于可視化Kafka背后的主要概念。這樣,當你閱讀其他指南時,你會感到更自信。

有那個,讓我們開始!

基本

在我們開始之前,讓我們確保我們在關于Kafka的同一頁面上。它是事件流軟件。它允許后端服務(通常在微服務體系結構中)彼此通信。

可視化Kafka

> Two services communicating via Kafka

生產者和消費者

生產者和消費者是在Kafka中傾聽或發送消息的服務。這些服務是您的后端服務。

可視化Kafka

> Consumer and Producer

服務可以是消費者和生產者。

可視化Kafka

> A service listening to messages and consuming them

主題 Topic

主題是生產者可以發送消息的地址。其他服務可以傾聽這些主題。

可視化Kafka

> A service emitting a message and a service receiving a message from a Kafka topic

服務可以偵聽并將消息發送到盡可能多的主題。

可視化Kafka

 

還有一個消費者組的概念。這是一組充當單一消費者的服務。

可視化Kafka

> A consumer group listening to topic B

對于任何用于消費者組的消息,Kafka將該消息路由到單個服務。這有助于您加載平衡消息。和規模消費者!

可視化Kafka

> A message going into a single service with a consumer group

一個主題充當郵件的隊列。讓我們走這一點。首先,發送消息。

可視化Kafka

> Producer sending message to Kafka topic.

然后,將記錄并存儲在此隊列中的消息。此消息無法更改。

可視化Kafka

> Message getting stored on the queue

該消息也被發送給主題的任何消費者。但是,該消息永久且無法編輯隊列。

可視化Kafka

> A copy of the message being stored on the queue and sent to consumer.

讓我們發送另一條消息。只是為了回家。

可視化Kafka

> Sending a second message to Topic A

就像以前一樣,此消息將被發送到消費者并存儲在隊列中。您無法更改消息,它們將永久存儲。

(P.S.如果有太多或經過一段時間),您可以配置Kafka主題以刪除這些消息)

可視化Kafka

> Second message being stored.

這是我們的Kafka集群中的每個主題

可視化Kafka

> Messages being queued up in topics

這些不可變的隊列允許我們異步地存儲消息,無論生產者或消費者是否下降。它還保證了消息的正確性(它們是不可替代的)。

讓我們開辟這些Kafka主題,看看內部。

分區

我撒了謊。一個Kafka主題不是一個隊列,而是實際組成了許多名為Partitions的隊列!他們幫助一個主題規模。

可視化Kafka

> A topic with two partitions

當一個生產者帖子到一個主題時,該消息被路由到單個分區。

可視化Kafka

> A message entering a topic, going to a partition

消費者會聽取所有分區并消耗所有人的事件。

可視化Kafka

> A message being consumed from a partition

默認情況下的生產者將為主題發送消息。主題將確定消息將轉到哪些分區。默認情況下,將通過循環策略分配消息。

可視化Kafka

> A producer writing to a topic, which is writing to multiple partitions

您可以配置主題(不是服務)以將消息拆分為不同的分區。例如,如果您正在處理用戶消息(并且具有用戶ID),則可以確保該用戶留在同一分區內的消息。您可以通過散列用戶ID來執行此操作,然后通過分區的數量調制它。你明白了。我希望。

可視化Kafka

> A producer sending messages (with possibly different entity/user ids) to different partitions

你為什么要這個?這是因為分區中的每條消息都保證按時間順序排列。因此,按順序消耗。

可視化Kafka

> Messages being consumed in order from partitions.

進入該分區的每條消息都在該分區中排序。即使有多個用戶(或其他實體)映射到相同的分區(紅色/綠色)。您仍然可以為每個訂購用戶消息。

可視化Kafka

> Regardless of why different message types are mApped into single partitions, they maintain order

將訂購來自分區的消息。但分區可以隨時發出消息。因此,主題,不要保證訂單。這有點奇怪。我知道。下面,請注意兩個分區如何發送自己的消息。但是,無論其他分區如何,他們都這樣做。他們仍然保持自己的信息訂單。

可視化Kafka

> Two perfectly valid scenarIOS. Each partition maintains order for its own messages.

如果您的消費者依賴于消息訂單(跟蹤用戶點擊在您的站點中),則您將希望更多地查看這些主題分區策略(這是本文的范圍)。如果沒有,默認策略將為您工作。

讓我們現在縮小一下并了解Kafka如何做到這一點。

基礎設施

如果我們退后一步,讓我們看看我們的第一個圖表。什么是kafka云?

可視化Kafka

> Two services communicating via Kafka

它實際上是一組服務器。我們將看到的第一個是Kafka群集的頭部,Zookeeper。

可視化Kafka

> Zookeeper routing traffic in and out of the Kafka cluster.

zookeeper管理您的所有主題和分區。它基本上維護了一組Kafka群集節點,其中存儲主題和分區。這些節點是構成Kafka集群的單獨機器(例如,EC2實例)。

可視化Kafka

> Zookeeper maintaining a set of nodes

如果我們有兩個主題,每個主題都有兩個分區,這是我們之前可能以前可視化的。請注意,分區與現在的主題相同。

可視化Kafka

> Two topics with two partitions

我們將編號分區以幫助稍后識別它們。

可視化Kafka

> Numbered partitions

現在,讓我們看看這些主題如何適應我們的Kafka集群。讓我們從一個主題開始。主題A.對于此示例,其分區#1將放在每個節點上。

可視化Kafka

> Topic A, Partition #1

您不必在每個節點上放置分區。你可能不想。它會變得昂貴。另一方面,您將擁有一個有彈性的系統。讓我們看看為什么。

如果消息進入,則會將其路由到其中一個節點中的分區,稱為領導者。zookeeper為領導者分配。

可視化Kafka

> A message sent to the leader.

Zookeeper將像以前一樣將消息發送給消費者。它還將將消息復制到分區的其他副本。追隨者。

可視化Kafka

> Sending the message to the consumer and duplicating it on all of the followers

現在,分區的每個副本都包含我們的消息!如果一個節點拆卸或爆炸,Zookeeper將重新分配給不同的節點。

可視化Kafka

> Message in each partition copy

這是與我們添加的彼此分區相同的過程。我們現在將在我們的群集中保留兩個分區副本。

可視化Kafka

> Two partition copies

現在讓我們在另一個分區#2中添加主題A.它也只是兩個副本。現在,主題A完全在我們的集群中!兩個分區都被復制和維護。

可視化Kafka

> Partition #1 and #2 in our cluster.

現在,讓我們在主題B的分區中添加分區。我們現在假設兩個副本。這是我們的Kafka集群與兩個主題!我們已經完成了!

可視化Kafka

> Both clusters

它可能有助于比較我們以前擁有的東西。請注意,主題如何在群集中傳播。

可視化Kafka

> What we had before.


可視化Kafka

> What we have now!

結論

我希望你現在對Kafka更好地了解。我希望這些可視化能幫助您詢問哪些問題,以便詢問。本文中的每個原則上都有令人難以置信的指南。

謝謝你的閱讀!并且非常感謝Kafka創作者制作一個令人難以置信的平臺。

(本文由聞數起舞翻譯自123 Followers的文章《Visualizing Kafka》,轉載請注明出處,原文鏈接:
https://timothystepro.medium.com/visualizing-kafka-20bc384803e7)

分享到:
標簽:Kafka
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定