Golang
Kanal vasitəsilə ötürülən məlumatlar oxunmadan qalsa, hansı nəticələr olacaq?
Effektivlik və istifadə rahatlığı baxımından, goroutinlər və ipler arasında hansı üstünlük var?
Xüsusi modifikator ilə elan edilmiş dəyişənin giriş sahəsini nə müəyyən edir?
Tapşırıq planlayıcısının işləməsi üçün hansı parametrlər tənzimlənə bilər?
Kafka'nın saniyədə 100 min mesaj işləməsini təmin etmək üçün hansı üsullar istifadə oluna bilər?
Kodda interfeysin istifadə olunmasının açıq şəkildə göstərilmədiyi vəziyyəti necə qəbul edirsiniz?
Hazırda üzərində işlədiyiniz və ya yaxın zamanda işlədiyiniz layihə haqqında danışın
Go-da dilimlər üzərində hansı əməliyyatlar mövcuddur?
Elementlərin bir Map-dən digərinə köçürülməsi prosesinə nə ad verilir?
/* Biz müəyyən bir mənbədən müəyyən bir istehlakçıya məlumat ötürməliyik. Mənbə kiçik partiyalar (~on qeyd) şəklində məlumat verir, halbuki, istehlakçı böyük partiyalar (~minlərlə qeyd) ilə daha səmərəli işləyir. Həqiqi nümunə Kafka tipli növbələrdən məlumatların Clickhouse bazasına ötürülməsidir. Mənbə: - Demək olar ki, sonsuz. - Mənbə heç vaxt Next çağırışında MaxItems-dən çox qeyd qaytarmır. - Bir "sessiya" (bir Pipe funksiyasının çağırışı) çərçivəsində, mənbə hər Next çağırışında yeni məlumatlar qaytarır. - Ancaq, yenidən başlatdıqdan sonra, mənbə əvvəlki "təsdiqlənmiş" mövqedən, cookie ilə göstərilən yerdən başlayır. Buna görə, Next tərəfindən qaytarılan hər cookie dəyəri, məlumatlar qəbul ediciyə saxlandıqdan sonra, Commit çağırışı ilə təsdiqlənməlidir, və yaşıdları ilə eyni ardıcıllıqda. Qəbul edən: - Eyni zamanda MaxItems-dən çox işləyə bilməz. Əsas səviyyə: func Pipe(p Producer, c Consumer) error funksiyasını həyata keçirmək lazımdır, bu mənbədən məlumat oxuyur, onları MaxItems-dən çox olmayan bufferdə qruplaşdırır və qəbulçiyə saxlayır, sonra isə mənbədə irəliləyişi təsdiqləyir. Çətinlik: Next, Process və Commit metodları şəbəkə çağırışları ilə əlaqəlidir və çox vaxt ala bilər. Prosesin sürətini artırmaq üçün, oxuma, yazma və irəliləyişi təsdiqləmə proseslərini paralel həyata keçirmək lazımdır. Belə ki, Process və ya Commit çağırışları zamanı, mənbədən oxuma və yeni bufferin formalaşması davam etsin. */ const MaxItems = 9999 type Producer interface { // Next aşağıdakıları qaytarır: // - işlənəcək elementlər partiyası // - təsdiqləmə üçün cookie // - xəta Next() (items []any, cookie int, err error) // Commit, məlumat partiyasını işlənmiş kimi işarələmək üçün istifadə olunur Commit(cookie int) error } type Consumer interface { Process(items []any) error } func Pipe(p Producer, c Consumer) error { // TODO }
Go dilində select əməliyyatı necə həyata keçirilir və o, kanallarla necə işləyir?
Bir goroutine-in icraını dayandırmaq və onu müəyyən bir sistem ipində bloklamaq mümkündürmü?
Go dili massivlər üçün daxili dəstəyə malikdir?
Go dilində hansı abstraksiya mexanizmi simvolları və ya tokenləri təmsil etmək üçün nəzərdə tutulub?
Proqramlaşdırma dilində dilim üçün sıfır dəyəri nə deməkdir?
Go dilində tapşırıqların paralel və ardıcıl işlənməsi necə həyata keçirilir?
HTTPS bağlantıları qurarkən məlumatların qorunması üçün hansı mexanizmlər və metodlar istifadə olunur?
Map məlumat strukturu üçün açar kimi istifadə üçün hansı məlumat növləri uyğundur?
Əməliyyat sistemində tapşırıq planlayıcısının işləmə mexanizmini izah edə bilərsinizmi?
Hash cədvəlinin daxili quruluşu və işləmə prinsipi haqqında izah edə bilərsinizmi?