A jogcím-ellenőrzési minta lehetővé teszi a számítási feladatok számára a hasznos adatok átvitelét anélkül, hogy a hasznos adatokat egy üzenetkezelő rendszerben tárolják. A minta egy külső adattárban tárolja a hasznos adatokat, és egy "jogcím-ellenőrzést" használ a hasznos adatok lekéréséhez. A jogcím-ellenőrzés egy egyedi, homályos jogkivonat vagy kulcs. A hasznos adatok lekéréséhez az alkalmazásoknak be kell mutatniuk a jogcím-ellenőrzési jogkivonatot a külső adattárban.
Kontextus és probléma
A hagyományos üzenetkezelési rendszerek úgy vannak optimalizálva, hogy nagy mennyiségű kis üzenetet kezeljenek, és gyakran korlátozzák az általuk kezelhető üzenetméretet. A nagyméretű üzenetek nem csak a korlátok túllépését kockáztatják, hanem a teljes rendszer teljesítményét is ronthatják, amikor az üzenetkezelő rendszer tárolja őket.
Megoldás
Használja a jogcím-ellenőrzési mintát, és ne küldjön nagy üzeneteket az üzenetkezelő rendszernek. Ehelyett küldje el a hasznos adatokat egy külső adattárba, és hozzon létre egy jogcím-ellenőrzési jogkivonatot a hasznos adatokhoz. Az üzenetkezelő rendszer a jogcím-ellenőrzési jogkivonattal egy üzenetet küld a fogadó alkalmazásoknak, hogy ezek az alkalmazások le tudják kérni a hasznos adatokat az adattárból. Az üzenetkezelő rendszer soha nem látja vagy tárolja a hasznos adatokat.
- Hasznos adat
- Mentse a hasznos adatokat az adattárban.
- Jogcím-ellenőrző jogkivonat létrehozása és üzenet küldése jogcím-ellenőrző jogkivonattal.
- Üzenet fogadása és jogcím-ellenőrzési jogkivonat olvasása.
- Kérje le a hasznos adatokat.
- A hasznos adatok feldolgozása.
A jogcím-ellenőrzési mintával kapcsolatos problémák és szempontok
Vegye figyelembe a következő javaslatokat a jogcím-ellenőrzési minta megvalósításakor:
A felhasznált üzenetek törlése. Ha nem kell archiválnia az üzenetet, törölje az üzenetet és a hasznos adatokat, miután a fogadó alkalmazások felhasználták. Használjon szinkron vagy aszinkron törlési stratégiát:
Szinkron törlés: A fogyasztó alkalmazás közvetlenül a használat után törli az üzenetet és a hasznos adatokat. A törlést az üzenetkezelési munkafolyamathoz társítja, és az üzenetkezelési munkafolyamat számítási kapacitását használja.
Aszinkron törlés: Az üzenetfeldolgozási munkafolyamaton kívüli folyamat törli az üzenetet és a hasznos adatokat. Leválasztja a törlési folyamatot az üzenetkezelési munkafolyamatról, és minimalizálja az üzenetkezelési munkafolyamat számítási funkciójának használatát.
A minta feltételes implementálása. Ha az üzenet mérete meghaladja az üzenetkezelő rendszer korlátját, akkor a jogcím-ellenőrzési mintát alkalmazó logikát kell beépíteni a küldő alkalmazásba. Kisebb üzenetek esetén hagyja figyelmen kívül a mintát, és küldje el a kisebb üzenetet az üzenetkezelő rendszernek. Ez a feltételes megközelítés csökkenti a késést, optimalizálja az erőforrások kihasználtságát, és javítja az átviteli sebességet.
Mikor érdemes használni a jogcím-ellenőrzési mintát?
A jogcím-ellenőrzési minta elsődleges használati esetei a következő forgatókönyvek:
Üzenetkezelési rendszer korlátozásai: Használja a Jogcím-ellenőrzési mintát, ha az üzenetméretek túllépik az üzenetkezelési rendszer korlátait. A hasznos adatok kiszervezése külső tárolóba. Csak a jogcím-ellenőrzési jogkivonattal rendelkező üzenetet küldje el az üzenetkezelő rendszernek.
Üzenetkezelési rendszer teljesítménye: Használja a jogcím-ellenőrzési mintát, ha nagy méretű üzenetek terhelik az üzenetkezelő rendszert, és csökkentik a rendszer teljesítményét.
A következő forgatókönyvek a jogcím-ellenőrzési minta másodlagos használati esetei:
Bizalmas adatvédelem: A jogcím-ellenőrzési mintát akkor használja, ha a hasznos adatok olyan bizalmas adatokat tartalmaznak, amelyek nem szeretnének láthatók lenni az üzenetkezelő rendszer számára. Alkalmazza a mintát a hasznos adatok bizalmas információinak egészére vagy részeire. Biztonságossá teheti a bizalmas adatokat anélkül, hogy közvetlenül az üzenetkezelő rendszeren keresztül továbbítanák.
Összetett útválasztási forgatókönyvek: A több összetevőn áthaladó üzenetek teljesítménybeli szűk keresztmetszeteket okozhatnak a szerializálási, deszerializálási, titkosítási és visszafejtési feladatok miatt. A jogcím-ellenőrzési minta használatával megakadályozhatja, hogy a közvetítő összetevők közvetlenül dolgozzanak fel üzeneteket.
Számítási feladatok tervezése jogcím-ellenőrzési mintával
Az építészeknek értékelniük kell, hogy a jogcím-ellenőrzési minta hogyan használható a számítási feladat kialakításában az Azure Well-Architected Framework pilléreiben foglalt célok és alapelvek kezelésére. Példa:
Pillér | Hogyan támogatja ez a minta a pillércélokat? |
---|---|
A megbízhatósági tervezési döntések segítenek a számítási feladatnak ellenállóvá válni a hibás működéssel szemben, és biztosítják, hogy a hiba után teljesen helyreálljon. | Az üzenetkezelő rendszerek nem biztosítják ugyanazt a megbízhatóságot és vészhelyreállítást, amely gyakran megtalálható a dedikált adattárakban. Az adatok üzenettől való elkülönítése nagyobb megbízhatóságot biztosíthat a hasznos adatok számára. Ez az elkülönítés megkönnyíti az adatredundanciát, amely lehetővé teszi a hasznos adatok helyreállítását egy katasztrófa után. - RE:03 Hibamód elemzése - RE:09 Vészhelyreállítás |
A biztonsági tervezési döntések segítenek biztosítani a számítási feladatok adatainak és rendszereinek titkosságát, integritását és rendelkezésre állását. | A jogcím-ellenőrzési minta képes bizalmas adatokat kinyerni az üzenetekből, és biztonságos adattárban tárolni. Ez a beállítás lehetővé teszi szigorúbb hozzáférés-vezérlések implementálását, biztosítva, hogy csak a bizalmas adatok használatára szánt szolgáltatások férhessenek hozzá. Ugyanakkor elrejti ezeket az adatokat a nem kapcsolódó szolgáltatásoktól, például az üzenetsor-figyeléshez használt szolgáltatásoktól. - SE:03 Adatbesorolás - SE:04 Szegmentálás |
A költségoptimalizálás a számítási feladatok megtérülésének fenntartására és javítására összpontosít. | Az üzenetkezelési rendszerek gyakran korlátozzák az üzenetek méretét, és a megnövekedett méretkorlátok gyakran prémium szintű funkciók. Az üzenettörzsek méretének csökkentésével olcsóbb üzenetkezelési megoldást használhat. - CO:07 Összetevő költségei - CO:09 Flow-költségek |
A teljesítményhatékonyság a skálázás, az adatátvitel és a kódvégrehajtás optimalizálásával segíti a számítási feladatok hatékony kielégítését . | A jogcím-ellenőrzési minta javítja az alkalmazások és az üzenetkezelő rendszer küldésének és fogadásának hatékonyságát a nagyméretű üzenetek hatékonyabb kezelésével. Csökkenti az üzenetkezelő rendszernek küldött üzenetek méretét, és biztosítja, hogy az alkalmazások csak szükség esetén férhessenek hozzá a nagy méretű üzenetekhez. - PE:05 Skálázás és particionálás - PE:12 Folyamatos teljesítményoptimalizálás |
Mint minden tervezési döntésnél, fontolja meg az ezzel a mintával bevezethető többi pillér céljaival szembeni kompromisszumokat.
Példák jogcím-ellenőrzési mintára
Az alábbi példák bemutatják, hogyan segíti elő az Azure a jogcím-ellenőrzési minta megvalósítását:
Azure-üzenetkezelési rendszerek: A példák négy különböző Azure-üzenetkezelési rendszerforgatókönyvet fednek le: Azure Queue Storage, Azure Event Hubs (Standard API), Azure Service Bus és Azure Event Hubs (Kafka API).
Automatikus és manuális jogcím-ellenőrzési jogkivonat létrehozása: Ezek a példák két módszert is mutatnak a jogcím-ellenőrző jogkivonat létrehozásához. Az 1–3. kód példáiban az Azure Event Grid automatikusan létrehozza a jogkivonatot, amikor a küldő alkalmazás a hasznos adatokat az Azure Blob Storage-ba továbbítja. A 4. kód példája egy végrehajtható parancssori ügyfél használatával történő manuális jogkivonat-létrehozási folyamatot mutat be.
Válassza ki az igényeinek megfelelő példát, és a megadott hivatkozást követve tekintse meg a kódot a GitHubon:
Mintakód | Üzenetkezelési rendszerforgatókönyvek | Jogkivonat-generátor | Alkalmazás fogadása | Adattár |
---|---|---|---|---|
Példa kódra 1 | Azure Queue Storage | Azure Event Grid | Függvény | Azure Blob Storage |
2. példakód | Azure Event Hubs (Standard API) | Azure Event Grid | Végrehajtható parancssori ügyfél | Azure Blob Storage |
Példa 3- kódra | Azure Service Bus | Azure Event Grid | Függvény | Azure Blob Storage |
Példa kódra 4 | Azure Event Hubs (Kafka API) | Végrehajtható parancssori ügyfél | Függvény | Azure Blob Storage |
Következő lépések
- A Nagyvállalati integrációs minták webhely leírást ad erről a mintáról.
- Egy másik példa: Nagyméretű Service Bus-üzenetek kezelése jogcímellenőrzési mintával (blogbejegyzés).
- A nagyméretű üzenetek kezelésére szolgáló másik minta a felosztás és az összesítés.
- Az olyan kódtárak, mint az NServiceBus, támogatják ezt a mintát a DataBus-funkciójukkal.