星期五, 4月 11, 2008

用 MySQL connect timeout 處理 DB failover 以及 load sharing

程式碼大約是這樣:
function foo(array $db_srvs)
{
// $db_srvs 是簡單的 array('db1', 'db2', 'db3') 即可
shuffle($db_srvs);
ini_set('mysql.connect_timeout', 1);
foreach ($db_srvs as $h) {
$db = @mysql_connect($db_srvs, $user, $pass, $dbname);
if ($db)
return $db;
}
return NULL;
}

當然還是要有其他的 monitoring software 去盯 MySQL server,不然會有很多連線會卡一秒鐘...

沒有留言: