Tarikkaya adlı üyeden alıntı: mesajı görüntüle
Hocam queue zaten tam olarak istediğin şeyi yapıyor. Competitive consumers pattern’de her worker queue’yu dinler ve queue round-robin(RabbitMQ bu algoritmayı kullanıyor load balancing için) ile mesajları dağıtır, worker bir siparişi işliyorsa ve ack göndermeden yeni mesaj çekmez, yeni sipariş geldiğinde boş olan worker o işi alır. Tek yapman gereken prefetch count’u doğru ayarlamak prefetch=1 yaparak her worker’ın aynı anda sadece 1 sipariş almasını garantilersin, böylece load tam dengeli dağılır. Websocket ile manuel dağıtım yapman gereksiz çünkü queue zaten bunu yapıyor ve battle-tested, sen Redis ile load balancer yazarsan ekstra complexity eklersin, hata riski ortaya çıkar.Kritik işlemler için (ödeme, stok gibi) idempotency kontrolü ve gerekirse distributed lock eklemen iyi olur ama temel load balancing için queue’nun kendi mekanizması yeterli, bu işini görecektir
Çok teşekkür ediyorum hocam