Anlamadığın kısım ne yaparsan yap, yine dönüp geleceğin nokta burası. Bilgisayarda hiç bir şey ayn anda olmaz, hepsi bir birine bağlı bir zamanlayıcı ile çalışır. CPU da vardır scheduler, hangi işin hangi çekirdeğe gideceğine bakar, OS ta vardır. Sql sunucuda vardır, http sunucuda vardır.

Yemek ateşte pişer, amma ocak, amma fırın, amma mangal. İllaki ateşte pişer.

Gelelim senin derdine.

Öyle kafadan sallama rakamlar kasarken, tcp portu nedir bir makina da kaç tane bulunur diye oturup düşünmen lazım.

Gelip buraya sallamadan önce git sunucunda bash üstünden 50000 request at bakalım ne oluyor ?

Sen 50.000 curl requestini bir makina da aynı anda çalıştıramazsın bu bir. En basitinden port yetmez.

Farz edelim öyle hayali bir makina var. Kontrol altına alıp işi takip etmen için yine benim dediğim gibi yapman gerekiyor. İşin doğası bu.

Peki gerçekte nasıl olabilir böyle bir şey.

Mysql ile olmaz, daha doğrusu senin hayal ettiğin hızda olmaz yani. Hepsin den önce zart diye 50 bin isteği kayıt edemezsin.

Senin o "sonraki mevzuu" dediğin ilk requesti attığın anda acı gerçek olarak geri döner. O yüzden gerçek programcı dünyasında onu sonraya bırakamayız.

MySQL yerine nosql bir çözüm, kullanmalısın. Redis olabilir. Dil kısmında statik bir dille yazabilsen mesela go ile çok şekilli bir çözüm olabilir. Curl de kullanmazsın, her istek kendi go routine alt işlemini açar, işi bitirir kapatır, bulunduğu makinanın cpu port durumunu kontrol ederek yeni process açar veya bekler. Makina başına bir botla çözersin. Gayet performanslı çalışır.

Lakin, görünüşe göre o model seni biraz aşar. Bu yüzden phalcon php kullanabilirsin, en azından hafıza kullanımını düşürebilirsin.

Phalcon php ile daemon bot yazacaksın. Sürekli olarak çalışacak, sn de bir redis e request atıp yeni iş varmı diye soracak. Eğer varsa birinciyi alacak ve kilit atacak yani başka bir bot o isteği gelip almayacak.

Bot işi alacak, kitleyecek, işleyecek, ve geri cevap döndürecek, iş yapıldı olarak işaretlenecek.

Bu modeli kurduktan sonra. Elindeki donanım gücüne göre sen bir makinada kaç bot aynı aynda çalışabilecek bunu hesaplayacaksın. O makinada o kadar bot duracak, eğer isteğini bir makina karşılamıyorsa, bir makina redis i tutacak diğerlerinde botlar olacak, onlar bu makinaya bağlanıp senin işlerini yapacaklar SIRA İLE.

Müşterim verdiği işin durumunu anında görsün sıkılmasın diyorsan, websocket ile çalışan durum bildirme sistemi kuracaksın.

Yani ziyaretçin işleri bir sıraya sokucuya gönderecek, bu sıraya sokucuda web socket ile çalışan chat sistem mantığı olacak, İşler yazılırken, işlenirken devamlı bir biçimde sunucudan ziyaretçi bilgisayarına güncelleme yapacak.

Yani işi sıraya sokacaksın, tek tek dağıtacaksın, tek tek işleyeceksin ve tek tek kayıt edeceksin sevsen de sevmesen de. Sonra artık durumuna göre bu işleri 1 veya 10 veya 100 veya 1000 tane ameleye vereceksin.

Varsa başka çözüm görmek isterim...