Tələblər, məlumat axını və texniki seçimləri bir sistem şəklində düşün.
18 dəq · praktika daxilİzah, axın və quiz
PRAKTİK SSENARİ
Universitetdə qeydiyyat açılır: yüzlərlə tələbə eyni fənnin son yerini seçir.
Qorunmalı qayda
Təsdiqlənmiş qeydiyyat sayı fənnin tutumunu keçməməlidir.
Sistemin sərhədini müəyyən et
Universitet üçün dərs qeydiyyatı xidməti qurduğunu düşün. Tələbə fənləri görür, yer seçir və nəticəni alır. Ekran sadə olsa da, eyni son yeri iki tələbənin götürməsi, qeydiyyat vaxtı yaranan sıxlıq və serverin dayanması ayrıca qərarlar tələb edir. Sistem dizaynı bu davranışları komponentlər və onların arasındakı müqavilələrlə ifadə edir.
Əvvəl məhsulun nə etdiyini yaz. Sonra hansı keyfiyyətlərin vacib olduğunu soruş: cavab müddəti, işlək qalma, məlumat itkisi və məxfilik. “Sürətli olsun” ölçülə bilən tələb deyil. “Qeydiyyat sorğularının 99 faizi normal yükdə bir saniyədən tez bitsin” yoxlanıla bilən hədəfdir.
HLD ilə LLD arasındakı əlaqə
HLD tətbiq, məlumat bazası, növbə və digər xidmətlərin sərhədlərinə baxır. LLD isə bir komponentin daxilində siniflərin məsuliyyətini və vəziyyət keçidlərini müəyyənləşdirir. Qeydiyyat xidmətinin ayrıca olması HLD qərarıdır; Enrollment obyektinin hansı hallarda ləğv edilə bilməsi LLD qərarıdır.
Əvvəl bir tətbiq və bir məlumat bazası ilə işləyən axını qur. Sonra konkret problem ortaya çıxanda yeni komponent əlavə et. Beş istifadəçisi olan sistemə iyirmi mikroservis əlavə etmək əməliyyat yükünü artırır, məhsulun ehtiyacını isə avtomatik həll etmir.
İŞLƏMƏ PRİNSİPİ4 komponent · 3 əlaqə
Son yerə iki tələbə müraciət edir
Oxu yalnız məlumat verir. Qeydiyyat qərarı atomik yazıda verilir; uğur və konflikt həmin qərarın ayrı nəticələridir.
Son yerə iki tələbə müraciət edirOxu yalnız məlumat verir. Qeydiyyat qərarı atomik yazıda verilir; uğur və konflikt həmin qərarın ayrı nəticələridir. 1. Tələbə: Niyyəti yoxla → Qeydiyyat xidməti. Tələbənin kimliyi, fənnə yazılmaq hüququ və eyni əməliyyatın əvvəlki nəticəsi yoxlanır. Müştərinin göstərdiyi boş yer sayı qərar üçün kifayət deyil. 2. Qeydiyyat xidməti: Yeri atomik ayır → Təsdiqlənmiş qeyd. Yer sayını yalnız remaining > 0 olduqda azalt. Qeydiyyatı və əməliyyat nəticəsini eyni tranzaksiyada saxla; uğur cavabını təsdiqdən sonra ver. 3. Qeydiyyat xidməti: Yer yoxdursa rədd et → Konflikt cavabı. Şərtli yazı heç bir sətri dəyişmirsə qeydiyyat yaratma. İstifadəçiyə mövcud yerləri yeniləmək və ya başqa fənn seçmək imkanı ver.12301TələbəcourseId + requestKey02Qeydiyyat xidmətiİcazə + atomik yazı03Təsdiqlənmiş qeydYer sayı + enrollment04Konflikt cavabıYer qalmayıb
Əlaqənin istiqamətiŞərti və ya ayrıca yol
Əlaqələri addım-addım araşdırNömrələr əlaqəni göstərir; paralel yollar ayrıca izah olunur.
Sorğu / çağırışTələbə Qeydiyyat xidməti
Tələbənin kimliyi, fənnə yazılmaq hüququ və eyni əməliyyatın əvvəlki nəticəsi yoxlanır. Müştərinin göstərdiyi boş yer sayı qərar üçün kifayət deyil.
Ötürülən məlumat
studentId / courseId / requestKey
İcra şərti
Eyni açar eyni tələbə və eyni niyyətə aiddir.
Əlaqə 1 / 3
Qərarı necə əsaslandırmaq olar?
Hər seçim üçün dörd cümlə yaz: hansı tələb var, hansı variantları nəzərdən keçirdin, niyə birini seçdin və bunun əvəzində nə itirdin. Məsələn, dərs kataloqu keşdən oxuna bilər, amma son boş yer tranzaksiyada yoxlanmalıdır. Eyni məhsulun iki axını fərqli təzəlik tələbi daşıyır.
Diaqramdakı hər oxun mənası olmalıdır: sinxron sorğudur, hadisədir, yoxsa replikasiyadır? Uğurlu cavabın hansı anda verildiyini göstər. Sistem dayansa, istifadəçinin gördüyü nəticə ilə saxlanmış vəziyyət arasında ziddiyyət qalıb-qalmadığını yoxla.
AXINI ADDIM-ADDIM İZLƏ
Bir əməliyyatın izi
Hər mərhələdə sistemdə nə dəyişdiyini və nəticənin nə vaxt təsdiqləndiyini izlə.
01 / 03
ADDIM 1 · SİSTEMİN DAVRANIŞI
Tələb
Tələbə yalnız boş yeri olan fənnə qeydiyyatdan keçə bilər.
TEXNİKİ YOXLAMA
Dizaynı işlək sistemə çevir
Seçimi əsaslandır, nasazlığı yarat və nəticəni ölç.
01
Seçim və məhdudiyyət
Kataloqu keşdən göstər, qeydiyyatı isə yer sayı və unikal tələbə-fənn məhdudiyyəti ilə eyni tranzaksiyada təsdiqlə. Bu yazı yolu əlçatmazdırsa uğur cavabı vermə.
02
Nasazlıq sınağı
Son yerə 100 paralel sorğu göndər. Qalib sorğunun cavabını itir və eyni əməliyyat açarı ilə təkrarla: bir yer, bir qeydiyyat, eyni nəticə qalmalıdır.
03
Nəyi ölçməli?
Pik yükdə p99 gecikməsi, konflikt sayı və tutumu aşan qeydiyyat sayı. Sonuncu göstəricinin qəbul edilən qiyməti sıfırdır.
Proxy Academy üçün hazırlanmış orijinal dərs və məşq nümunələri.
SƏNİN NÖVBƏNDİR
Dizaynı özün qur
Universitet qeydiyyatı üçün üç funksional və üç ölçülə bilən keyfiyyət tələbi yaz.
Yanaşmanı müqayisə et
Fənn axtarışı, qeydiyyat və ləğv funksional tələblərdir. Pik sorğu sayı, p99 gecikmə hədəfi və artıq qeydiyyatın qadağan edilməsi ayrıca ölçülür.