我正在编写一个自定义的PHP MySQL库,它将连接到多个MySQL服务器,并提供应用程序级负载平衡。基本上,它尝试连接到一系列服务器(所有服务器),第一个成功连接的人获胜。
问题是,对于我的一生,我看不到mysql
或mysqli
PHP 库可以说异步连接的方法,即使用回调。显然,我不想阻止每次连接尝试,否则库将不得不等待超时,然后尝试下一个服务器。
它应该像这样工作:
foreach($servers as $server) {
mysql_async_connect($server, function($connection) {
if($connection) {
//Use this connection, successful
}
}
}
这怎么可能?有没有人编写过一个异步PHP库来连接到MySQL?谢谢。
你试图做的事情是行不通的 - PHP 只是伪多线程的。
这意味着,如果多个用户访问同一脚本,则如果该脚本在多线程计算机上运行,则两个请求将并行执行。但是,不能指定从单个脚本调用启动的单独线程。
你可以做的是创建一个使用javascript的AJAX应用程序,它使用回调,在服务器端使用php来获取数据。