კაფკას შენახვად იყენებდით? რამდენი განცხადება იყო Kafka-ში?
Golang
რატომ რიგი (რომელ სიტყვიდან Q)?
ოპტიმისტური და პესიმისტური ბლოკირებები — მითხარი
გქონდათ თუ არა ინფრასტრუქტურასთან მუშაობის გამოცდილება? გქონდათ თუ არა რაიმეს შეხება?
მიკროწესვიან არქიტექტურაში Consul ყველაზე ხშირად რა მიზნით გამოიყენება?
ტიმში სენიორ-დეველოპერისა და მედიას შორის რა განსხვავებაა?
RPS საშუალოდ 4-5 ათასი RPS, პიკებში 12k-მდე მაგრამ აქ მნიშვნელოვანია להבין, რომ ძირითადი დატვირთვა Kafka-ზე მოდიოდა. ვინაიდან არქიტექტურა ასინქრონულია, თითო განცხადების შექმნისას, ჩემი ორკესტრატორი წარმოქმნიდა 5-7 მოვლენის ჯაჭვს სხვადასხვა შემოწმების სერვისებში. ჯამში, ჩვენ საშუალოდ 30k შეტყობინებას ვამუშავებდით წამში.
კომპანია უზრუნველყოფს სამუშაო აღჭურვილობას?
რისი დონე განიხილავთ გადასვლისას?
საერთო გამოცდილება რა არის ინფრასტრუქტურაში, მათ შორის Docker, Kubernetes, CI/CD და ქსელები?
როგორ ჩაატარეთ დატვირთვის ტესტი და რა მეტრიკებს უყავით ყურადღება?
როგორ ხვდებოდი სიტუაციებს, როდესაც შენი გადაწყვეტილებები უარყოფილი იყო?
როგორ მოსახერხებელია ჰიბრიდული სამუშაო ფორმატი მოსკოვში, სადაც ოფისში მინიმუმ ერთხელ კვირაში უნდა იაროთ?
რამდენი წლიანი კომერციული გამოცდილება გაქვთ Go-ით განვითარებაში?
რატომ გადაწყვიტეთ ბაზარზე გასვლა? რა არ არის ახლა Magnit-ში?
როგორ იტერიროთ მოწესრიგებულ რუკაზე წესრიგის შენარჩუნებით? იტერაციის მეთოდის განხორციელება.
// ასინქრონული დავალების დამუშავებლის დაწერა ბიბლიოთეკის სახით // კლიენტი გადმოსცემს ობიექტს (Task) მონაცემებით, რათა შეასრულოს დავალება, // ჩვენს მაგალითში გამოვიყენებთ ცარიელ სტრუქტურას. // დამუშავებელი ერთდროულად შეიძლება უმეტესად N დავალება, // და არა მეტი X დავალება შეიძლება იყოს რიგში დამუშავებისთვის. // თუ რიგში ადგილი არ არის, დაუყოვნებლივ ვუბრუნებთ შეცდომას კლიენტს. // დავალება მიიღება დამუშავებისთვის, თუ თავისუფალი დამუშავებლები არსებობს. // ჩვენ სიმულაციას ვაკეთებთ დამუშავების ხანგრძლივობას time.Sleep(5*time.Second) გამოყენებით. // როგორც კი ერთი დავალება დასრულდება, ვიღებთ შემდეგს რიგიდან. // თუ რიგი ცარიელია, ველით ახალი დავალებებს კლიენტებისგან. // ვარსკვლავით: შეავსეთ Task სტრუქტურა და მიიღეთ დავალებების სტატუსები ცალკე მოთხოვნით package scheduler type Scheduler interface { AddTask(t Task) error Close() } type Task interface { Do() }
თუ AddTask-ში RLock გამოიყენება, როგორ მოიქცევიან ორი პარალელური გამოძახება AddTask-ი? იქნებიან თუ არა ისინი ერთმანეთისთვის ბლოკირებული?
გააზიარეთ შემთხვევა, როდესაც თქვენ რამე წინადადება გითქვამთ და თქვენი მოსაზრების დამტკიცება მოგიწიათ.
როგორ ინახება მომხმარებლის მდგომარეობა ზერო-დაუნტაიმ დიპლოის დროს?