Facebook'ta arkadaşlık isteği göndermeye benzer bir uygulamam için bir senaryo var.MongoDB Concurrency Sayı
A kullanıcısı, kullanıcı B'ye arkadaşlık isteği gönderdiğinde, dahili olarak yeni bir arkadaşlık isteği belgesi oluşturulur. Daha sonra B kullanıcısı arkadaşlık isteğini A'ya göndermek istediğinde, sistem bir arkadaşlık isteği belgesinin var olduğunu ve böylece arkadaşlarının birbirinin dostu olması gerektiğini öğrenirdi, yeni arkadaşlık isteği belgesi oluşturulmayacaktı.
Ben kullanıcı A ve B kullanıcısı hem eşzamanlı sonra 2 arkadaş isteği belgeler oluşturmak ve belirsiz davranışlara yol açan olacaktır birbirlerine arkadaşlık isteği gönderdiğinde davayı anlamaya çalışıyorum ... için
sayesinde sizin öneriler .. Gerçekten takdir!
Düzeltme: Bir kaçının bunu çözmek için bir istek kuyruğu kullanmayı önerdiği; Ancak, kuyruk kullanma konusunda kafam karıştı çünkü ben istirahat işim bitimi işlem isteklerini sıralı olarak yapacağımı düşündüm. Kuyruk kullanarak çok iş parçacığının tüm faydalarını kaybetmez miyim? Yardım edemem ancak hizmetimin sıraya konması ve sıraya konması için milyonlarca talep beklenirse ne kadar kötü olacağını hayal edemiyorum. Üretimde görülen benzer sorunlar boyunca bir şey gören oldu mu?
Bu, sunucumun artık paralel olarak istekleri işleme koymayacağı anlamına gelmiyor, bu daha önce olduğu gibi performans göstermeyecek anlamına mı geliyor? – user1955934
Hayır, yalnızca bu özel işlevin yazma işlemi bir sıradan geçecektir. –
evet isterseniz paralel okuyucular olabilirsiniz, ancak eğer bir dizi yazma işlemi sıraya alınmışsa, yanıt çok yavaş mı yoksa hatta zaman aşımıyla sonuçlanmaz mıydı? Demek istediğim, bu nadir vakadaki performansa meydan okumak buna değer mi? Ben çok nadir bir durum bu tür çözmek için başka bir yol umuyoruz .. :( – user1955934