Mi az eseményvezérelt modell, és milyen gyors a valós idejű művelet?
Ha belegondolunk, számos eseményvezérelt forgatókönyvet azonosíthatunk. Sokuknak valós időben kell reagálni.
Mit értünk valós időben?
A valós idejű reakció azonnali válasznak tekinthető. Vegyünk egy példát egy kávézóban lévő pénztárosra, aki megkérdezi, mit szeretne inni.
A pénztáros azonnali választ vár, vagy legalább egy nagyon hamar érkezett választ. Ellenkező esetben a pénztáros megismétlheti a kérdést, vagy gyaníthatja, hogy durva volt. A rendszer gyors választ kér, és megfelelő is. A válasz ideje kissé eltérő lehet, de még mindig "valós időben" tekintik. Tehát a köszöntésnek gyorsan meg kell történnie, de érdemes röviden átgondolni a rendelését, hogy megválaszolja a pénztáros kérdését.
Ha ezt a forgatókönyvet szoftverrendszerekre fordítja, csak az időzítések érdeklik: válaszidő, befejezési idő, hozzáférési idő, indítási időpontok stb. Ezeket az időzítéseket a felhasználó vagy a hozzáférési alkalmazás határozza meg.
Jegyzet
A rendszerfeladatok valós időben, az előírt határidőn belül végzik el a feladatukat.
Mindig tisztában kell lennie azzal, hogy mi történik a rendszerben. Ezért ügyeljen arra, hogy ne felejtse el a nyilvánvalót, ami az időzítés naplózása, monitorozása és mérése.
Fontos
Győződjön meg arról, hogy előre megadja a határidőket és az időzítéseket, és állítson be egy nem tiltó monitorozási megoldást a vizsgálathoz.
Összefoglalva, egyetértünk abban, hogy a valós idő szupergyors, egy pillanat alatt. Az adott forgatókönyv pontosan megadja, hogy milyen gyorsan.
Eseményvezérelt alkalmazások
Ha egy kattintásos eseményre gondol, valami más jut eszébe. Az eseményvezérelt alkalmazások a tűz és a felejtés elvét használják. Az esemény elküldése vagy indul a következő rendszer irányába, amely lehet egy másik szolgáltatás, eseményközpont, adatfolyam vagy üzenetközvetítő, például a Kafka. Nem feltétlenül várjuk meg a rendszer következő válaszát. Laza összekapcsolás érhető el a végleges konzisztencia árán, amelyről más szinten kell gondoskodni.
Az eseményvezérelt alkalmazások természetének azonosításához vizsgáljuk meg a fő architektúramintákat egy Alex nevű ügyfél példájával, amely kávét és cappuccinót vásárol.
Eseményértesítés
Az eseményértesítés egy adott eseményről vagy eseményről szóló értesítés. Minden esemény külön látható. Egy Alex nevű ügyfél példája egy kávé és egy cappuccino megvásárlására a következőképpen nézhet ki:
1. Esemény: Alex vesz egy kávét.
2. Esemény: Alex vesz egy cappuccino.
Egy baristának gondosan meg kell hallgatnia minden eseményt, hogy megkapja Alex teljes megrendelését. De két barista önállóan is elkészíthette és kiszolgálhatta az italokat.
Az esemény által hordozott állapotátvitel
Az esemény által hordozott állapotátvitel esetén az összes szükséges információ egyetlen eseményben lesz tárolva. Ez akkor hasznos, ha egy esemény elveszik, vagy a szolgáltatás nem figyeli az összes eseményt. Példánkban az események a következőképpen néznek ki:
1. Esemény: Alex vesz egy kávét.
2. Esemény: Alex a kávé mellett vásárol egy cappuccinót.
Egy barista esetén elég lehet, ha csak a második eseményre figyel. Két barista van, a másodiknak az elsőre kell néznie. A megrendelést együtt lehet kézbesíteni, de a folyamat hosszabb időt vehet igénybe, mint teljesen leválasztva.
Esemény forráskezelése
Az eseményalapú forráskezeléssel az eseménytárolás kerül a fókuszba. Mint látható, az események ugyanazok, mint az első példában. De a barista fontos ebben a koncepcióban abban a pillanatban, amikor a barista kap egy értesítést, majd átgondolja az összes kapcsolódó eseményt, hogy megállapítsa az összes Alex által leadott rendelés aktuális állapotát.
A második sorrendben a barista tudja, hogy Alex rendelése egy kávéból áll, az első megrendelésre emlékezve, és egy cappuccinóból, mert ezt az italt csak megrendelték. Egy másik baristával párhuzamosan dolgozni nem olyan könnyű.
Amikor hozzáadunk egy pénztárost a rendelések fogadásához és az italok kiszolgálásához, a baristák önállóan dolgozhatnak az italok előkészítésén. Semmit sem kell tudniuk az ügyfelekről. A pénztáros az úgynevezett eseménytároló, amely megőrzi az eseményeket ebben a forgatókönyvben. Az eseményalapú tárolás egy újabb összetettségi réteget ad hozzá, de a komponensek lazább kötését is biztosítja.
1. Esemény: Alex vesz egy kávét.
Pénztáros: (Első) rendelés Alexnek: Kávé
2. Esemény: Alex vesz egy cappuccino.
Pénztáros: (Második) rendelés (Alex esetén): Cappuccino
A telemetriai adatok valós idejű események
Más példákra is gondolhatunk. Képzelje el a hűtőrendszer futtatásának forgatókönyvét, például élelmiszer- vagy gyógyszergyártók számára. A rendszer hőmérsékletének és egyéb releváns adatainak állandó szabályozására van szükség. A telemetriaadatok megismerése és automatikus vezérlése kritikus fontosságú lenne a siker szempontjából. A telemetriát két másodpercenként méri, majd elküldi a vezérlőrendszerbe, ahol az adatokat elemzik, feldolgozzák és kezelik, eseményvezérelt rendszer. Emellett az adatokat valós időben kell feldolgozni, mert kritikus fontosságú gyorsan reagálni, hogy elkerüljük az üzlet tragikus következményeit.