Merhabalar.

Bir server-multiclient uygulaması (masaüstü uygulaması) yazıyorum.
Client'lar Server'da bulunan serverScript'e bağlanıp -serverScript mysql'e
bağlanıyor çalıştığında- veritabanından gerekli bilgileri çekiyor.

Problem çok fazla kullanıcı bağlandığında - 1000-10000 arası kullanıcı -
performans açısından program yetişemiyor. Bunun için birkaç çözüm düşündüm.
Tabi bunlardan bazılarını güvenlik sebebi ile eledim fakat yine de hepsini
burada yazıyorum.

Aşağıdaki çözümlerden başka bu iş için bir yol var mı? Örneğin msn tarzı
masaüstü uygulmaları bu işi nasıl yapıyorlar?

Çözüm önerileriniz ve fikirleriniz için herkese teşekkürler şimdiden.


Çözümler
--------------

Çözüm 1: Clientlar direk olarak Server Mysql portuna bağlanıp sql
komutlarını çalıştırırlar.

Sorun: Problem mysql_max_connection değeri ile bağlantı sayısının
sınırlanması. Arttırılsa bile bir yere kadar. Performans düşüyor.
Sorun 2: Güvenlik problemi var. Çünkü mysql'e bağlanmak için uygulamanın
içine mysql şifresini yazıyorum. Fakat reverse eng. ile şifre okunabiliyor
binary dosyadan.



Çözüm 2: Clientlar http-request ile Servar'da index.php'den istedikleri
bilgiye ulaşılar. Server'da Apache üzerinde bir php script'i olacak. Bu
script mysql'e bağlı ve kendisine yapılan isteklerden postData'ları alıp
veritabanı üzerinde çalıştırıp geri bilgi dönecek.

Sorun: Bir tane php dosyası her seferinde mysql'e bağlanıp sql komutunu
çalıştırıp veriyi gönderiyor request eden client'a ve kapanıyor. Tekrar
istek geldiğinde yine bağlanıyor. Bir süre sonra max_connection problemi
yine çıkıyor. Normalde bu şekilde mi çalışıyor yoksa ben mi yanlış
tasarladım script'i.



Çözüm 3: Server üzerinde bir python scripti ile gelen istekler (soket
programlama ile) alınıp mysql'de çalıştırılıp geri cvp dönerek. Çalışan
script her bağlantı için bir thread oluşturuyor.

Sorun: Çok fazla kullanıcı bağlanınca  bir süre sonra thread oluşturulamadı
diye hata veriyor.



Çözüm 4: Çözüm 3'deki script'in thread olmaksızın hali yani gelen her istek
için çalıştırp geri dönme olayı.

Sorun: Bu çözümde ise yine çok fazla kullanıcı bağlanınca programlara
cvp'lar geç gitmeye başlıyor.
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap