Eğer 1000 eşzamanlı istek gelirse, 1000 işletim sistemi iş parçacığı mı oluşur? Bu durumda hizmetle ne olur?
Golang
10 hizmetten veri toplayan bir ön yüz var, her biri 100 ms cevap veriyor, toplamda yaklaşık bir saniye. Bu sorunu, uç noktanın verileri daha hızlı döndürmesi için nasıl çözerdin?
İlk 11 hizmetten biri hata verirse, diğer hizmetlere veri almak için devam eder misin?
Veya Redis tek bir veri merkezindeydi ve herkes ona bağlanıyordu?
Hangi ilkeye göre mimari ve servis sınırlarını seçtiniz?
Konuştuğumuz veri yarışı sorununu nasıl çözeriz?
Redis tüm üç veri merkezinde miydi?
Dosya işlemek için goroutine kullanırken hangi yan etkiler olabilir, nelere hazırlıklı olmak gerekir?
Üç veri merkezi vardı — bunlar arasında çoğaltma/yedekleme şeması nasıl organize edildi?
Veri merkezleri birbirinin tam kopyaları mıydı yoksa birbirini mi tamamlıyordu? Trafiği sadece aralarında yönlendiriyor muydun?
Ve goroutine'lar aynı satıra/buffere yazarsa, böyle bir sorun mümkün müdür?
Hangi kilit alanını kastediyorsun (denormalizasyon hakkında açıklama, is_blocked bayrağı)?
Goroutinler nasıl «sızabilir» (sızıntı yapabilir)?
Olay Kafka'dan ilk veri merkezine gelir, biz onu yakalar ve Redis'e kaydederiz. Bu veriler nasıl üç veri merkezine ulaştı?
Kanal dışı başka yollar var mı, goroutinlerle çalışmayı organize etmek için?
Özgeçmişinde SQL sorgularını optimize ettiğini yazmışsın. Senin düşüncene göre, kilitlenmemiş satıcıları seçen sorgu için yürütme planı nasıl görünürdü (EXPLAIN)?
Denetim algoritması (veri karşılaştırması) hakkında anlatabilir misin? Katıldın mı? Nasıl gerçekleşti?
Özgeçmişinizde 50-80 bin RPS belirtilmiş. Bu ne tür bir hizmetti ve ne yapıyordu?
Redis ile okuma modeli hakkında konuştunuz. Redis veri merkezleri arasında çoğaltıldı mı?
Eğer gittiğin hizmetlerden biri hata verirse, ne yaparsın ve bir kanal varsa bunu nasıl işleyeceksin?