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
