Եթե 1000 միաժամանակյա հարցումներ հասնեն, արդյոք 1000 օպերացիոն համակարգի թելեր կստեղծվեն? Ինչ կլինի այդ դեպքում ծառայության հետ?
Golang
Կա մի ֆասադ, որը հավաքում է տվյալներ 10 ծառայություններից, յուրաքանչյուրը պատասխանում է 100 միլիսեկունդում, ընդհանուր առմամբ մոտ մեկ վայրկյան: Ինչպե՞ս կլուծեիր այս խնդիրը, որպեսզի վերջնակետը ավելի արագ վերադարձնի տվյալները։
Կարո՞ղ ես շարունակել մնալ մյուս ծառայություններում տվյալների համար, եթե առաջինը 11 ծառայություններից սխալ է վերադարձնում։
Եվ Redis-ը մի տվյալների կենտրոնում էր, և բոլորը դիմում էին նրան:
Ի՞նչ սկզբունքով եք ընտրել ծառայությունների ճարտարապետությունը և սահմանները:
Ինչպես լուծել այն data race խնդիրը, որի մասին մենք խոսեցինք?
Ի՞նչ կարող են լինել կողմնակի ազդեցությունները գորուտինների օգտագործման ժամանակ ֆայլը մշակելիս, ինչի համար պետք է պատրաստ լինենք։
Redis կար բոլոր երեք տվյալների կենտրոններում?
Դուք ունեիք երեք տվյալների կենտրոններ — ինչպես էր կազմակերպված կրկնօրինակի/պահուստի սխեման նրանց միջև:
Դատարկարանները լրացուցիչ էին միմյանց, թե պարզապես ուղղում էին տրաֆիկը միջեւ?
Որ բլոկավորման դաշտին ես վերաբերում (շարունակական բացատրություն դենորմալիզացիայի մասին, նշան is_blocked)?
Եվ եթե goroutine-ները գրում են նույն տողում/բուֆերում, արդյոք հնարավոր է այդպիսի խնդիր?
Ինչպես կարող են գորուտինները «լքել» (լողալ)?
Իրադարձությունը գալիս է առաջին տվյալների կենտրոն՝ Kafka-ից, մենք այն բռնում ենք և պահում Redis-ում: Ինչպե՞ս են այս տվյալները հասել բոլոր երեք տվյալների կենտրոններին։
Կան այլ միջոցներ, բացի ալիքներից, գորուտինների հետ աշխատելու համար?
Ձեր կենսագրության մեջ գրել եք, որ օպտիմալացրել եք SQL հարցումները: Ինչպե՞ս եք կարծում, թե ինչպիսին կլինի չկապված վաճառողներին ընտրելու հարցման կատարման պլանը (EXPLAIN):
Ձեր կենսագրությունում նշված է 50-80 հազար RPS: Դա ինչպիսի ծառայություն էր և ինչ էր անում?
Կարող եք պատմել աուդիտի ալգորիթմի մասին (տվյալների ստուգում)? Դուք մասնակցե՞լ եք դրան: Ինչպե՞ս անցավ այն։
Դուք խոսեցիք read-model- ի մասին Redis-ով: Redis-ը կրկնօրինակում էր տվյալների կենտրոնների միջև?
Եթե մեկը ծառայություններից, որ դու օգտագործում ես, սխալ վերադարձնի, ինչ անես և ինչպես կառավարվի դա, եթե لديك قناة؟