Ben bir ana mysql db ve dört köle dbs sahip bir web uygulaması var. Ben köle sorguları (SEÇ) salt okunur tüm (veya hemen hemen tüm) işlemek istiyorum. Onlar da Apache / PHP çalışan ve web sayfalarını hizmet vermekteyiz yana yük dengeleyici, otomatik köle makinelerin birine kullanıcıya gönderir. Ben kurulum için bir içerme dosyası kullanıyorum gibi veritabanlarına bağlantı:
//for master server (i.e. - UPDATE/INSERT/DELETE statements)
$Host = "10.0.0.x";
$User = "xx";
$Password = "xx";
$Link = mysql_connect( $Host, $User, $Password );
if( !$Link ) )
{
die( "Master database is currently unavailable. Please try again later." );
}
//this connection can be used for READ-ONLY (i.e. - SELECT statements) on the localhost
$Host_Local = "localhost";
$User_Local = "xx";
$Password_Local = "xx";
$Link_Local = mysql_connect( $Host_Local, $User_Local, $Password_Local );
//fail back to master if slave db is down
if( !$Link_Local ) )
{
$Link_Local = mysql_connect( $Host, $User, $Password );
}
Daha sonra SELECT ifadelerine için bağlantı olarak tüm güncelleştirme sorguları ve $ Link_Local için $ Linki kullanın. Köle sunucu veritabanı iner kadar her şey gayet iyi çalışıyor. Yerel db aşağı eğer localhost bağlanmaya çalışıyor vazgeçer ve geri komut dönmeden önce, $ Link_Local = mysql_connect () çağrısı, en az 30 saniye sürer. Bu sayfa Servislerime büyük bir birikim olur ve temelde (nedeniyle son derece yavaş tepki süresi) sistem kapanır.
Herkes PHP ile köle sunuculara bağlantıları işlemek için daha iyi bir yol biliyor mu? Ya da, 2-3 saniye sonra mysql_connect aramayı durdurmak için kullanılan olabilir, zaman aşımı fonksiyonu çeşit var mı?
Yardımlarınız için teşekkürler. Ben diğer mysql_connect konuları aradı, ama bu konuyu ele aldığını görmedim.