什麼是事件驅動,即時的速度到底有多快?

已完成

如果我們考慮它,我們可以識別許多事件驅動案例。 他們中的很多人需要即時的反應。

我們即時代表什麼意思?

即時反應可視為立即答案。 讓我們在咖啡店中以收銀員為例,詢問您想要喝什麼。

收銀員期待一個即時答案,或至少一個很快得到的答案。 否則,收銀員可能會重新回答問題或懷疑您粗魯。 要求快速答案,也適用。 答案的時間可能稍有不同,但它仍然被視為“即時”。因此,返回問候語應該很快發生,但可以簡短地思考您的訂單來回答收銀員的問題。

如果您將此案例轉譯為軟體系統,您關心的就是時間:回應時間、完成時間、存取時間、啟動時間等等。 使用者或存取應用程式會定義這些計時。

備註

系統工作會即時在指定的期限內執行其功能。

您應該一律注意系統中發生的情況。 因此,請確定您不要忘記顯而易見的,也就是記錄、監視和測量時間。

這很重要

請確定您事先指定期限和時間,並設定非封鎖監視解決方案以進行檢查。

總而言之,我們同意即時意味著超快,在瞬間。 您指定的案例所指定的速度有多快。

事件驅動應用程式

如果您考慮點擊事件,您會考慮其他專案。 事件驅動應用程式會使用 火災和忘記 原則。 事件會傳送或 引發 至下一個系統,它可以是另一個服務、事件中樞、數據流或像是 Kafka 的訊息代理程式。 我們不一定等待系統中下一個回應的回應。 鬆散結合 是為了最終一致性的價格達成,這需要在另一個層級處理。

若要識別事件驅動應用程式的性質,讓我們看看主要架構模式,方法是使用名為 Alex 的客戶範例來購買咖啡和 cappuccino。

事件通知

事件通知是特定發生或事件的通知。 每個事件都會個別看到。 名為 Alex 購買咖啡和 cappuccino 的客戶範例可能如下所示:

1. 事件: 亞歷克斯買咖啡。

2. 事件: 亞歷克斯買了一個卡布奇諾。

一位咖啡師必須仔細聆聽所有事件,以得到亞歷克斯的全部訂單。 但兩位咖啡師也可以獨立準備和供應飲料。

事件攜帶狀態傳輸

使用事件攜帶狀態傳輸時,所有必要的信息都會儲存在單一事件中。 如果事件遺失或您的服務未接聽所有事件,就會派上用場。 在我們的範例中,事件看起來會像這樣:

1. 事件: 亞歷克斯買咖啡。

2. 活動: 亞歷克斯除了咖啡, 一個卡布奇諾購買。

使用一位咖啡師,只接聽第二個事件可能就足夠了。 有了兩個咖啡師,第二個咖啡師必須看看第一個。 訂單可以一起提供,但此程式可能需要更長的時間才能完全分離。

事件來源

使用事件來源時,事件記憶體會成為焦點。 如您所見,事件與第一個範例相同。 但咖啡師對於這個概念很重要,當時咖啡師收到事件,然後考慮所有對應的事件,以取得亞歷克斯發出的所有訂單的目前狀態。

在第二個訂單中,咖啡師知道亞歷克斯的訂單包括咖啡,記住第一個訂單,和一個卡布奇諾,因為這種飲料只是訂購的。 與第二位咖啡師平行運作並不容易。

當我們增加一個收銀員來接收訂單和供應飲料時,咖啡師可以獨立工作來準備飲料。 他們不需要知道客戶的任何事項。 收銀員是所謂的事件存放區,會保存該案例中的事件。 事件來源會增加另一層的複雜性,但也會新增分離。

1. 事件: 亞歷克斯買咖啡。

收銀員:(第一)訂單(亞歷克斯):咖啡

2. 事件: 亞歷克斯買了一個卡布奇諾。

收銀員:(第二)訂單(亞歷克斯):卡布奇諾

顯示購買咖啡之事件來源的視覺效果。

遙測數據是即時事件

另外還有我們可以想到的其他範例。 想像一下執行冷藏系統的案例,例如食品或藥品製造商。 您需要持續控制系統中的溫度和其他相關數據。 了解遙測數據,並自動控制遙測數據對於您的成功至關重要。 每隔兩秒測量遙測一次,然後將它傳送至控制系統,其中數據會進行分析、處理和處理,這是事件驅動系統。 此外,數據必須即時處理,因為必須快速做出反應,以避免業務產生悲慘的後果。