Üzenetek vagy események használatának kiválasztása

Befejeződött

Tegyük fel, hogy egy elosztott zenemegosztó alkalmazás architektúráját tervezi. Szeretné, ha az alkalmazás megbízható és méretezhető lenne, amennyire csak lehetséges, és az Azure-technológiákat kívánja használni egy robusztus kommunikációs infrastruktúra felépítésére.

Mielőtt kiválaszthatná a megfelelő Azure-technológiát, meg kell értenie minden egyes, az alkalmazás összetevői által váltott üzenetet. Minden kommunikációhoz választhat egy másik Azure-technológiát.

A kommunikációval kapcsolatos első dolog, amit meg kell értenie, hogy üzeneteket vagy eseményeket küld-e. Ez a tudás segít kiválasztani a megfelelő Azure-szolgáltatást.

Kommunikációs stratégiák az Azure-ban (API-k)

Mi az üzenet?

Az elosztott alkalmazások terminológiájával az üzenetek a következő jellemzőkkel rendelkeznek:

  • Az üzenet nyers adatokat tartalmaz, amelyeket egy összetevő állít elő, és amelyeket egy másik összetevő használ fel.
  • Az üzenet magukat az adatokat tartalmazza, nem csak az adatokra mutató hivatkozást.
  • A küldő összetevő elvárja, hogy a célösszetevő bizonyos módon dolgozza fel az üzenet tartalmát. A rendszer általános integritása függhet attól, hogy a feladó és a fogadó is végez-e egy adott feladatot.

Tegyük fel, hogy egy felhasználó feltölt egy új dal a zenemegosztó mobilalkalmazás használatával. A mobilalkalmazásnak el kell küldenie ezt a dalt a webes API-nak, amely az Azure-ban fut. Magát a dal médiafájlját kell elküldeni, nem csak egy értesítést, amely jelzi, hogy felvettek egy új dalt. A mobilalkalmazás elvárja, hogy a webes API tárolja az új dalt az adatbázisban, és elérhetővé teszi más felhasználók számára. Ez egy példa az üzenetre.

Mi az az esemény?

Az események egyszerűbbek, mint az üzenetek, és leggyakrabban a közvetítési kommunikációhoz használatosak. Az eseményt küldő összetevők közzétevőkként, a fogadók pedig feliratkozókként ismertek.

Események esetén az összetevők fogadása dönti el, hogy melyik kommunikáció érdekli őket, és "iratkozzon fel" ezekre az eseményekre. Egy közvetítő kezeli az előfizetést, például az Azure Event Gridet vagy az Azure Event Hubsot. Amikor a közzétevők küldenek egy eseményt, a közvetítő átirányítja az eseményt az érdekelt előfizetőknek. Ezt a mintát "publish-subscribe architektúraként" ismerjük. Nem ez az egyetlen módja az események kezelésének, de ez a leggyakoribb.

Az események a következő jellemzőkkel rendelkeznek:

  • Egy esemény egy egyszerűsített értesítés, amely azt jelzi, hogy valami történt.
  • Az esemény küldhető több fogadónak vagy egynek sem.
  • Az eseményeket gyakran „üzenetelosztásra” szánják, és nagyszámú feliratkozóval rendelkeznek mindegyik kiadónál.
  • Az esemény kiadójának nincs elvárása azzal kapcsolatban, milyen műveletet hajt végre a fogadó összetevő.
  • Bizonyos események különálló egységek, és nem kapcsolódnak más eseményekhez.
  • Bizonyos események egy kapcsolódó és rendezett sorozat részét képezik.

Tegyük fel például, hogy a zenefájl feltöltése befejeződött, és az új dal hozzá lett adva az adatbázishoz. Annak érdekében, hogy tájékoztassa a felhasználókat az új fájlról, a webes API-nak tájékoztatnia kell a webes előteret és a mobilalkalmazás-felhasználókat az új fájlról. A felhasználók eldönthetik, hogy meghallgatják-e az új dalt, így a kezdeti értesítés nem tartalmazza a zenefájlt, de csak arról értesíti a felhasználókat, hogy a dal létezik. A feladónak nincs konkrét elvárása, hogy az esemény fogadói bármit is tegyenek az eseményre adott válaszként.

Ez az eset példa egy különálló eseményre.

Az üzenetek és az események közötti választás módja

Egy adott alkalmazás bizonyos célokra valószínűleg eseményeket használ, másokra pedig üzeneteket. A választás előtt elemeznie kell az alkalmazás architektúráját és minden használati esetét, hogy azonosítsa az összes különböző célt, ahol az összetevőknek kommunikálniuk kell egymással.

Az eseményeket nagyobb valószínűséggel használják a közvetítésekhez, és gyakran rövid élettartamúak. Ez azt jelenti, hogy előfordulhat, hogy egy fogadó nem kezeli a kommunikációt, ha jelenleg egyik sem iratkozott fel. Valószínűbb, hogy üzeneteket használnak, ha az elosztott alkalmazásnak garanciára van szüksége arra, hogy a kommunikációt feldolgozzák.

Minden kommunikáció esetén fontolja meg a következő kérdést: Azt várja a küldő összetevő, hogy a célösszetevő egy adatott módon dolgozza fel a kommunikációt?

Ha a válasz igen, akkor válassza az üzenet használatát. Ha a válasz nem, lehetséges, hogy használhat eseményeket.

Annak megértése, hogy az összetevőknek hogyan kell kommunikálniuk, segít kiválasztani az összetevők kommunikációját. Kezdjük az üzenetekkel.

Tesztelje tudását

1.

Tegyük fel, hogy Ön egy elosztott alkalmazással rendelkezik, amelyben a felhasználók hitelesítésére szolgáló webszolgáltatás található. Amikor egy felhasználó bejelentkezik, a webszolgáltatás az összes ügyfélalkalmazást értesíti, hogy azok ki tudják jelezni a felhasználó „Online” állapotát. Mire példa ez a bejelentkezési értesítő: üzenet vagy esemény?

2.

Tegyük fel, hogy Ön egy elosztott alkalmazással rendelkezik, amelyben a felhasználók egy webszolgáltatással kezelhetik a fiókjaikat. A felhasználók bejelentkezhetnek, szerkeszthetik a profiljukat, és törölhetik a fiókjukat. Amikor egy felhasználó törli a fiókját, a webszolgáltatás értesítést küld az adatrétegbe, hogy a felhasználó adatai el legyenek távolítva az adatbázisból. Mire példa ez a fióktörlési értesítő: üzenet vagy esemény?