donanım ?
Date: Mon, 10 Sep 2012 22:33:13 +0300
From: [email protected]
To: [email protected]
Subject: [Linux-programlama]    Server-MultiClient Masaüstü Uygulaması

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                         
                  
_______________________________________________
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