Megosztás a következőn keresztül:


Web-Queue-Worker architektúra stílus

Az architektúra alapvető összetevői az ügyfélkéréseket kezelő webes kezelőfelületek , valamint egy erőforrás-igényes feladatokat, hosszan futó munkafolyamatokat vagy kötegelt feladatokat végző feldolgozó . A webes felület üzenetsor segítségével kommunikál a munkavégzővel.

Egy logikai diagram, amely bemutatja a Web-Queue-Worker architektúrát.

A következő összetevőket gyakran beépítik ebbe az architektúrába:

  • Egy vagy több adatbázis

  • Gyorsítótár az adatbázisból származó értékek gyors olvasásához való tárolásához

  • Tartalomkézbesítési hálózat statikus tartalom kiszolgálására

  • Olyan távoli szolgáltatások, mint az e-mail vagy a rövid üzenetszolgáltatás (SMS), amelyeket általában nem Microsoft-szolgáltatók biztosítanak.

  • Identitásszolgáltató hitelesítéshez

A web és a feldolgozó állapot nélküli, a munkamenet állapota pedig elosztott gyorsítótárban tárolható. A munkavállaló aszinkron módon kezeli a hosszan futó feladatot. A sorban álló üzenetek elindíthatják a munkafolyamatot, vagy egy ütemezés futtathatja azt kötegelt feldolgozás céljából. A feldolgozó nem kötelező, ha az alkalmazás nem rendelkezik hosszú ideig futó műveletekkel.

Az előtér tartalmazhat egy webes API-t. Egy egyoldalas alkalmazás AJAX-hívásokkal használhatja a webes API-t, vagy egy natív ügyfélalkalmazás közvetlenül használhatja azt.

Mikor érdemes használni ezt az architektúrát?

A webesQueue-Worker architektúrát általában felügyelt számítási szolgáltatások, például az Azure App Service vagy az Azure Kubernetes Service használatával implementálják.

Vegye figyelembe ezt az architektúrát a következő használati esetekben:

  • Viszonylag egyszerű tartománnyal rendelkező alkalmazások

  • Hosszú ideig futó munkafolyamatokkal vagy kötegműveletekkel rendelkező alkalmazások

  • Olyan forgatókönyvek, ahol a felügyelt szolgáltatásokat részesíti előnyben az infrastruktúra szolgáltatásként (IaaS) szemben

Előnyök

  • Egyszerű és könnyen követhető architektúra

  • Üzembe helyezés és felügyelet minimális erőfeszítéssel

  • A felelősségek egyértelmű elkülönítése

  • A front end és a munkafolyamat leválasztása aszinkron üzenetküldés révén

  • A frontend és a worker független skálázása

Kihívások

  • Gondos tervezés nélkül az előtér és a feldolgozó nagy monolitikus összetevőkké válhat, amelyeket nehéz karbantartani és frissíteni.

  • Ha az előtér és a feldolgozó adatsémákat vagy kódmodulokat oszt meg, rejtett függőségek lehetnek.

  • A webes front-end akkor hibásodhat meg, amikor már megtörtént az adatok adatbázisba mentése, de még mielőtt üzeneteket küldene a sorba, ami konzisztenciaproblémákat okoz, mert a munkavégző nem hajtja végre a logika ráeső részét. A probléma enyhítéséhez használhat olyan technikákat, mint a tranzakciós kimenő mintázat, amely megköveteli, hogy a kimenő üzeneteket először egy különálló üzenetsorba irányítsák vissza. Az NServiceBus tranzakciós munkamenet könyvtára támogatja ezt a technikát.

Ajánlott eljárások

Web-Queue-Worker az App Service-ben

Ez a szakasz az App Service-t használó ajánlott Web-Queue-Worker architektúrát ismerteti.

A Web-Queue-Worker architektúrát bemutató diagram.

Töltse le az architektúra Visio-fájlját.

Workflow

  • Az előoldal App Service webalkalmazásként van megvalósítva, a feldolgozó pedig Azure Functions alkalmazásként van megvalósítva. A webalkalmazás és a Functions alkalmazás is egy App Service-csomaghoz van társítva, amely a virtuálisgép-példányokat biztosítja.

  • Az üzenetsorhoz használhat azure Service Bus - vagy Azure Storage-üzenetsorokat . Az előző diagram egy Storage-üzenetsort használ.

  • Az Azure Managed Redis tárolja a munkamenet állapotát és más, alacsony késésű hozzáférést igénylő adatokat.

  • Az Azure Content Delivery Network statikus tartalmak, például képek, CSS vagy HTML gyorsítótárazására szolgál.

  • A tároláshoz válassza ki az alkalmazás igényeinek leginkább megfelelő technológiákat. Ez a többértelmű adatmegőrzésnek nevezett megközelítés több tárolási technológiát használ ugyanabban a rendszerben a különböző követelmények teljesítéséhez. Az ötlet szemléltetéséhez a diagram az Azure SQL Database-t és az Azure Cosmos DB-t is megjeleníti.

További információ: Alapkonfiguráció– magas rendelkezésre állású zónaredundáns webalkalmazás és üzenetvezérelt üzleti alkalmazások létrehozása az NServiceBus és a Service Bus használatával.

Egyéb szempontok

  • Nem minden tranzakciónak kell az üzenetsoron és a feldolgozó egységen keresztül átmennie a tárolóhoz. A webes előtér közvetlenül képes egyszerű olvasási és írási műveletek elvégzésére. A munkavállalók erőforrás-igényes feladatokhoz vagy hosszan futó munkafolyamatokhoz vannak kialakítva. Bizonyos esetekben előfordulhat, hogy egyáltalán nincs szüksége munkavállalóra.

  • A számítási platform beépített automatikus méretezési funkciójával skálázhatja a példányok számát. Ha az alkalmazás terhelése kiszámítható mintákat követ, használjon ütemezésalapú automatikus skálázást. Ha a terhelés kiszámíthatatlan, használjon metrikákon alapuló automatikus skálázást.

  • Fontolja meg, hogy a webalkalmazást és a Functions-alkalmazást különálló App Service-csomagokba helyezi, hogy egymástól függetlenül skálázhatók legyenek.

  • Használjon külön App Service-csomagokat produkciós és tesztelési célokra.

  • Üzembehelyezési pontok használata az üzemelő példányok kezeléséhez. Ezzel a módszerrel üzembe helyezhet egy frissített verziót egy átmeneti ponton, majd lecserélheti az új verzióra. Azt is lehetővé teszi, hogy visszacserélje az előző verzióra, ha probléma merül fel a frissítés során.