Golang
Milyen webszervereket ismersz az Nginx mellett?
Ismered a 'középen lévő ember' (man in the middle) támadást?
A GPH-n keresztüli ügyintézés nem jelenik meg a munkáskönyvben?
Írja le a HTTP-kérés és -válasz szerkezetét. Hogyan osztályozzuk a válaszkódokat?
Van technikai adóssága?
Felhasználók ID szerint shardolva vannak. A szolgáltatás kérvényt kap a felhasználó jelszavának frissítésére — mi történik ezután a szolgáltatás szintjén?
Mi az a tranzakciók izolációs szintjei? Melyiket használtad?
Dolgoztál már replikációval? Milyen típusú replikációk léteznek?
Lehetséges RPC-t megvalósítani REST-en keresztül és fordítva? Mi a lényeges különbség?
Mi a különbség a TCP és az UDP között?
A szolgáltatás leállt, miután a 10. bolt csatlakozott a statisztikai funkcióhoz. Mit fogsz tenni? Hogyan diagnosztizálsz és optimalizálsz az adatbázist?
Vannak versenyek goroutine-okkal és számlálóval ellátott feladatban? Hogyan javítható? Mi a különbség a Mutex és az Atomic között?
Érdekelnek az infrastruktúrával kapcsolatos feladatok, nem pedig az üzleti domain?
Hogyan optimalizáljuk a teljesítményt nagy terhelés (1000 RPS) esetén a mutex-szel védett foglalási módszernél?
Dolgozott PostgreSQL, MongoDB, ClickHouse és más adatbázisokkal?
Mi a különbség a pufferelt és nem pufferelt csatornák között?
Milyen végzettséged van? Befejezett? Most nem tanulsz?
Hogyan győződjünk meg arról, hogy a szolgáltatáshoz használt token érvényes, nem módosították és nem kompromittálták?
Dokumentumfrissítések érkeznek a szolgáltatáshoz message Document { string Url = 1; // A dokumentum URL-je, egyedi azonosítója uint64 PubDate = 2; // a dokumentum bejelentett közzétételi ideje uint64 FetchTime = 3; // ennek a dokumentumfrissítésnek az időpontja, verzióazonosítóként értelmezhető. A (Url, FetchTime) pár egyedi. string Text = 4; // a dokumentum szövege uint64 FirstFetchTime = 5; // kezdetben hiányzik, ki kell tölteni } A dokumentumok tetszőleges sorrendben érkezhetnek (nem a frissítésük sorrendjében), és lehetnek duplikált üzenetek. A kimeneten ugyanazokat az üzeneteket kell létrehozni, de a következő szabályok szerint javított mezőkkel (az alábbiak mindegyike ugyanazzal a Url mezővel rendelkező dokumentumcsoportokra vonatkozik): A Text és FetchTime mezőknek a legnagyobb eddig kapott FetchTime-hoz kell igazodniuk. A PubDate-nek a legkisebb FetchTime-hoz kell igazodnia. A FirstFetchTime-nek a legkisebb FetchTime értékének kell lennie. Más szóval, minden pillanatban a FetchTime szerint rendezett első verzióból származó PubDate és FirstFetchTime, valamint a legutóbbi verzió Textje kerül kiválasztásra. A kód interfésze így valósítható meg: type Processor interface { Process(doc *Document) (*Document, error) } Ez a kód egy olyan szolgáltatásban fog működni, amely üzeneteket olvas egy sorból (Kafka vagy hasonló), és az eredményt szintén a sorba írja. Ha a Process null értéket ad vissza, akkor semmi sem kerül a sorba.
Mi a keresés jelenlegi algoritmikus összetettsége?