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

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

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Kafka是開(kāi)源事件流軟件,可允許您構(gòu)建事件驅(qū)動(dòng)系統(tǒng)。雖然有其他指南,但我希望專注于可視化Kafka背后的主要概念。這樣,當(dāng)你閱讀其他指南時(shí),你會(huì)感到更自信。

有那個(gè),讓我們開(kāi)始!

基本

在我們開(kāi)始之前,讓我們確保我們?cè)陉P(guān)于Kafka的同一頁(yè)面上。它是事件流軟件。它允許后端服務(wù)(通常在微服務(wù)體系結(jié)構(gòu)中)彼此通信。

可視化Kafka

> Two services communicating via Kafka

生產(chǎn)者和消費(fèi)者

生產(chǎn)者和消費(fèi)者是在Kafka中傾聽(tīng)或發(fā)送消息的服務(wù)。這些服務(wù)是您的后端服務(wù)。

可視化Kafka

> Consumer and Producer

服務(wù)可以是消費(fèi)者和生產(chǎn)者。

可視化Kafka

> A service listening to messages and consuming them

主題 Topic

主題是生產(chǎn)者可以發(fā)送消息的地址。其他服務(wù)可以傾聽(tīng)這些主題。

可視化Kafka

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

服務(wù)可以偵聽(tīng)并將消息發(fā)送到盡可能多的主題。

可視化Kafka

 

還有一個(gè)消費(fèi)者組的概念。這是一組充當(dāng)單一消費(fèi)者的服務(wù)。

可視化Kafka

> A consumer group listening to topic B

對(duì)于任何用于消費(fèi)者組的消息,Kafka將該消息路由到單個(gè)服務(wù)。這有助于您加載平衡消息。和規(guī)模消費(fèi)者!

可視化Kafka

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

一個(gè)主題充當(dāng)郵件的隊(duì)列。讓我們走這一點(diǎn)。首先,發(fā)送消息。

可視化Kafka

> Producer sending message to Kafka topic.

然后,將記錄并存儲(chǔ)在此隊(duì)列中的消息。此消息無(wú)法更改。

可視化Kafka

> Message getting stored on the queue

該消息也被發(fā)送給主題的任何消費(fèi)者。但是,該消息永久且無(wú)法編輯隊(duì)列。

可視化Kafka

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

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

可視化Kafka

> Sending a second message to Topic A

就像以前一樣,此消息將被發(fā)送到消費(fèi)者并存儲(chǔ)在隊(duì)列中。您無(wú)法更改消息,它們將永久存儲(chǔ)。

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

可視化Kafka

> Second message being stored.

這是我們的Kafka集群中的每個(gè)主題

可視化Kafka

> Messages being queued up in topics

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

讓我們開(kāi)辟這些Kafka主題,看看內(nèi)部。

分區(qū)

我撒了謊。一個(gè)Kafka主題不是一個(gè)隊(duì)列,而是實(shí)際組成了許多名為Partitions的隊(duì)列!他們幫助一個(gè)主題規(guī)模。

可視化Kafka

> A topic with two partitions

當(dāng)一個(gè)生產(chǎn)者帖子到一個(gè)主題時(shí),該消息被路由到單個(gè)分區(qū)。

可視化Kafka

> A message entering a topic, going to a partition

消費(fèi)者會(huì)聽(tīng)取所有分區(qū)并消耗所有人的事件。

可視化Kafka

> A message being consumed from a partition

默認(rèn)情況下的生產(chǎn)者將為主題發(fā)送消息。主題將確定消息將轉(zhuǎn)到哪些分區(qū)。默認(rèn)情況下,將通過(guò)循環(huán)策略分配消息。

可視化Kafka

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

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

可視化Kafka

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

你為什么要這個(gè)?這是因?yàn)榉謪^(qū)中的每條消息都保證按時(shí)間順序排列。因此,按順序消耗。

可視化Kafka

> Messages being consumed in order from partitions.

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

可視化Kafka

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

將訂購(gòu)來(lái)自分區(qū)的消息。但分區(qū)可以隨時(shí)發(fā)出消息。因此,主題,不要保證訂單。這有點(diǎn)奇怪。我知道。下面,請(qǐng)注意兩個(gè)分區(qū)如何發(fā)送自己的消息。但是,無(wú)論其他分區(qū)如何,他們都這樣做。他們?nèi)匀槐3肿约旱男畔⒂唵巍?/p>可視化Kafka

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

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

讓我們現(xiàn)在縮小一下并了解Kafka如何做到這一點(diǎn)。

基礎(chǔ)設(shè)施

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

可視化Kafka

> Two services communicating via Kafka

它實(shí)際上是一組服務(wù)器。我們將看到的第一個(gè)是Kafka群集的頭部,Zookeeper。

可視化Kafka

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

zookeeper管理您的所有主題和分區(qū)。它基本上維護(hù)了一組Kafka群集節(jié)點(diǎn),其中存儲(chǔ)主題和分區(qū)。這些節(jié)點(diǎn)是構(gòu)成Kafka集群的單獨(dú)機(jī)器(例如,EC2實(shí)例)。

可視化Kafka

> Zookeeper maintaining a set of nodes

如果我們有兩個(gè)主題,每個(gè)主題都有兩個(gè)分區(qū),這是我們之前可能以前可視化的。請(qǐng)注意,分區(qū)與現(xiàn)在的主題相同。

可視化Kafka

> Two topics with two partitions

我們將編號(hào)分區(qū)以幫助稍后識(shí)別它們。

可視化Kafka

> Numbered partitions

現(xiàn)在,讓我們看看這些主題如何適應(yīng)我們的Kafka集群。讓我們從一個(gè)主題開(kāi)始。主題A.對(duì)于此示例,其分區(qū)#1將放在每個(gè)節(jié)點(diǎn)上。

可視化Kafka

> Topic A, Partition #1

您不必在每個(gè)節(jié)點(diǎn)上放置分區(qū)。你可能不想。它會(huì)變得昂貴。另一方面,您將擁有一個(gè)有彈性的系統(tǒng)。讓我們看看為什么。

如果消息進(jìn)入,則會(huì)將其路由到其中一個(gè)節(jié)點(diǎn)中的分區(qū),稱為領(lǐng)導(dǎo)者。zookeeper為領(lǐng)導(dǎo)者分配。

可視化Kafka

> A message sent to the leader.

Zookeeper將像以前一樣將消息發(fā)送給消費(fèi)者。它還將將消息復(fù)制到分區(qū)的其他副本。追隨者。

可視化Kafka

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

現(xiàn)在,分區(qū)的每個(gè)副本都包含我們的消息!如果一個(gè)節(jié)點(diǎn)拆卸或爆炸,Zookeeper將重新分配給不同的節(jié)點(diǎn)。

可視化Kafka

> Message in each partition copy

這是與我們添加的彼此分區(qū)相同的過(guò)程。我們現(xiàn)在將在我們的群集中保留兩個(gè)分區(qū)副本。

可視化Kafka

> Two partition copies

現(xiàn)在讓我們?cè)诹硪粋€(gè)分區(qū)#2中添加主題A.它也只是兩個(gè)副本。現(xiàn)在,主題A完全在我們的集群中!兩個(gè)分區(qū)都被復(fù)制和維護(hù)。

可視化Kafka

> Partition #1 and #2 in our cluster.

現(xiàn)在,讓我們?cè)谥黝}B的分區(qū)中添加分區(qū)。我們現(xiàn)在假設(shè)兩個(gè)副本。這是我們的Kafka集群與兩個(gè)主題!我們已經(jīng)完成了!

可視化Kafka

> Both clusters

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

可視化Kafka

> What we had before.


可視化Kafka

> What we have now!

結(jié)論

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

謝謝你的閱讀!并且非常感謝Kafka創(chuàng)作者制作一個(gè)令人難以置信的平臺(tái)。

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

分享到:
標(biāo)簽:Kafka
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定