Zpracování přechodných chyb připojení ke službě Azure Database for MariaDB

Důležité

Azure Database for MariaDB je na cestě vyřazení. Důrazně doporučujeme migrovat do služby Azure Database for MySQL. Další informace o migraci na Azure Database for MySQL najdete v tématu Co se děje se službou Azure Database for MariaDB?.

Tento článek popisuje, jak zpracovávat přechodné chyby při připojování ke službě Azure Database for MariaDB.

Přechodné chyby

Přechodná chyba, označovaná také jako přechodná chyba, je chyba, která se vyřeší sama. Většina těchto chyb se obvykle projevuje jako připojení k databázovému serveru, který se zahodí. Nová připojení k serveru se také nedají otevřít. K přechodným chybám může dojít například v případě, že dojde k selhání hardwaru nebo sítě. Dalším důvodem může být nová verze služby PaaS, která se zavádí. Většina těchto událostí je systémem automaticky zmírněná za méně než 60 sekund. Osvědčeným postupem při návrhu a vývoji aplikací v cloudu je očekávat přechodné chyby. Předpokládejme, že k nim může dojít v libovolné komponentě kdykoli a aby byla k těmto situacím zavedená příslušná logika.

Zpracování přechodných chyb

Přechodné chyby by se měly zpracovat pomocí logiky opakování. Situace, které je potřeba zvážit:

  • Při pokusu o otevření připojení dojde k chybě.
  • Na straně serveru se přeruší nečinné připojení. Když se pokusíte vydat příkaz, nejde ho spustit
  • Aktivní připojení, které právě spouští příkaz, se zahodí.

První a druhý případ jsou poměrně rovné pro zpracování. Zkuste připojení znovu otevřít. Pokud budete úspěšní, systém zmírní přechodnou chybu. Službu Azure Database for MariaDB můžete znovu použít. Doporučujeme počkat před opakováním připojení. Pokud se počáteční opakování nezdaří, vraťte se zpět. Tímto způsobem může systém používat všechny prostředky, které jsou k dispozici k vyřešení chybové situace. Dobrým vzorem, který je třeba dodržovat, je:

  • Počkejte 5 sekund před prvním opakováním.
  • U každého následujícího opakování zvyšte exponenciální nárůst čekání až o 60 sekund.
  • Nastavte maximální počet opakování v okamžiku, kdy vaše aplikace považuje operaci za neúspěšnou.

Pokud připojení s aktivní transakcí selže, je obtížnější správně zpracovat obnovení. Existují dva případy: Pokud transakce byla jen pro čtení v přírodě, je bezpečné znovu otevřít připojení a opakovat transakci. Pokud se však transakce také zapisovala do databáze, musíte určit, zda byla transakce vrácena zpět, nebo pokud byla úspěšná před přechodnou chybou. V takovém případě jste pravděpodobně neobdrželi potvrzení potvrzení z databázového serveru.

Jedním ze způsobů, jak to udělat, je vygenerovat jedinečné ID klienta, který se používá pro všechny opakování. Toto jedinečné ID předáte jako součást transakce serveru a uložíte ho ve sloupci s jedinečným omezením. Tímto způsobem můžete transakci bezpečně zopakovat. Pokud byla předchozí transakce vrácena zpět a klient vygenerovaný jedinečný IDENTIFIKÁTOR ještě v systému neexistuje, bude úspěšná. Pokud bylo dříve uloženo jedinečné ID, protože předchozí transakce byla úspěšně dokončena, dojde k selhání indikující porušení duplicitního klíče.

Když váš program komunikuje se službou Azure Database for MariaDB prostřednictvím middlewaru třetích stran, zeptejte se dodavatele, jestli middleware obsahuje logiku opakování přechodných chyb.

Nezapomeňte otestovat logiku opakování. Zkuste například spustit kód při vertikálním navýšení nebo snížení kapacity výpočetních prostředků serveru Azure Database for MariaDB. Aplikace by měla zpracovávat krátké výpadky, ke kterým dochází během této operace bez jakýchkoli problémů.

Další kroky