Azure Functions tervezése azonos bemenethez

Az eseményvezérelt és üzenetalapú architektúra valósága azt diktálja, hogy azonos kéréseket kell elfogadni az adatintegritás és a rendszer stabilitásának megőrzése mellett.

A szemléltetés érdekében fontolja meg a lifthívás gombot. Ahogy megnyomja a gombot, kigyullad, és a liftet a padlóra küldik. Néhány perccel később valaki más is csatlakozik hozzád az előszobában. Ez a személy mosolyog, és lenyomja a megvilágított gombot másodszor. Mosolyogj vissza, és kacagj magadnak, amikor emlékeztetik, hogy a lift hívásának parancsa idempotens.

A lifthívás gomb második, harmadik vagy negyedik megnyomása nem befolyásolja a végeredményt. Amikor megnyomja a gombot, függetlenül attól, hogy hányszor, a liftet a rendszer elküldi a padlóra. Az idempotens rendszerek, például a lift, ugyanazt az eredményt eredményezik, függetlenül attól, hogy hányszor azonos parancsokat adnak ki.

Az alkalmazások létrehozásakor vegye figyelembe a következő forgatókönyveket:

  • Mi történik, ha a készletvezérlő alkalmazás többször is megpróbálja törölni ugyanazt a terméket?
  • Hogyan viselkedik az emberierőforrás-alkalmazás, ha egynél több kérés van arra vonatkozóan, hogy hozzon létre egy alkalmazotti rekordot ugyanahhoz a személyhez?
  • Hová kerül a pénz, ha a banki alkalmazás 100 kérést kap ugyanahhoz a kifizetéshez?

Számos olyan környezet van, ahol a függvényre irányuló kérések azonos parancsokat kaphatnak. Egyes helyzetek a következők:

  • Próbálkozzon újra a szabályzatokkal, amelyek ugyanazt a kérést sokszor küldik el.
  • A gyorsítótárazott parancsok visszajátszottak az alkalmazásba.
  • Több azonos kérést küldő alkalmazáshibák.

Az adatintegritás és a rendszerállapot védelme érdekében az idempotens alkalmazások olyan logikát tartalmaznak, amely a következő viselkedéseket tartalmazhatja:

  • A törlés végrehajtása előtt ellenőrizze az adatok meglétét.
  • Annak ellenőrzése, hogy léteznek-e már adatok a létrehozási művelet végrehajtása előtt.
  • Egyeztetési logika, amely végleges konzisztenciát hoz létre az adatokban.
  • Egyidejűségi vezérlők.
  • Duplikációészlelés.
  • Adatfrissítés ellenőrzése.
  • Őrlogika a bemeneti adatok ellenőrzéséhez.

Végső soron az idempotencia egy adott művelet lehetőségének biztosításával érhető el, és csak egyszer hajtható végre.

Következő lépések