Sobes.tech
Middle+

Əməliyyatların idarə olunması kontekstində saga nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Saga, mikroxidmət memarlığında paylanmış əməliyyatların idarə olunması üçün bir nümunədir. Bu, hər biri bir xidmətdə məlumatları yeniləyən yerli əməliyyatlar ardıcıllığını təmsil edir.

Əgər ardıcıllıqda hər hansı yerli əməliyyat uğursuz olarsa, saga, əvvəlki uğurla tamamlanan yerli əməliyyatlar tərəfindən edilən dəyişiklikləri geri almaq üçün kompensasiya əməliyyatları toplusu həyata keçirir və beləliklə sistemin bütövlüyünü bərpa edir.

Saga-nın həyata keçirilməsi üçün iki əsas yanaşma mövcuddur:

  1. Xoreoqrafiya: Xidmətlər birbaşa hadisələr mübadiləsi edir, mərkəzi koordinatora güvənmir. Hər bir xidmət digər xidmətlər tərəfindən yaradılan hadisələri dinləyir və öz yerli əməliyyatlarını həyata keçirir və/yaxud cavab olaraq yeni hadisələr yayımlayır.

    • Üstünlüklər: Kiçik sayda xidmət üçün daha sadə, tək bir uğursuzluq nöqtəsi yoxdur.
    • Dezavantajlar: İş axını və potensial döngəvi asılılıqları izləmək çətindir, debugging daha mürəkkəbdir.
  2. Orkestrasiya: Mərkəzi orkestrator (saga orkestratoru) yerli əməliyyatların ardıcıllığını idarə edir. Orkestrator, xidmətlərə yerli əməliyyatlarını yerinə yetirmək üçün komandalar göndərir və xidmətlərdən alınan hadisələrə (uğur/ uğursuzluq) cavab verir, növbəti addım və ya kompensasiya əməliyyatlarının həyata keçirilməsi barədə qərar verir.

    • Üstünlüklər: Məsuliyyətlərin aydınlığı, iş axını izləmək və debugging asanlığı, mürəkkəb məntiqin tətbiqi daha sadədir.
    • Dezavantajlar: Orkestrator tək uğursuzluq nöqtəsi ola bilər, saga vəziyyətinin idarə olunması üçün əlavə məntiq tələb edir.

İcra seçimi biznes prosesinin mürəkkəbliyinə, iştirak edən xidmətlərin sayına və idarəetmə və müşahidə tələblərinə bağlıdır. Saga, klassik anlamda atomiklik (ACID) təmin etmir, lakin eventual tutarlılığı təmin edir.