建立多個(gè)服務(wù)器之間進(jìn)行數(shù)據(jù)通信服務(wù),服務(wù)自動(dòng)連接在線服務(wù)器,支持熱拔,啟動(dòng)服務(wù)后自動(dòng)連接,無需人為干預(yù) 注意事項(xiàng): 需要在conf/application.conf里配置端口和監(jiān)聽、日志等 需要有一個(gè)redis服務(wù)器,并且分布式服務(wù)器都能連接redis web端可以直接調(diào)用服務(wù) 使用如下 //注意:type為sql、file,要是需要?jiǎng)e的功能,自己定義 if($_FILES){ //數(shù)據(jù)同步 $sql = array('type'=>'sql','data'=>'show tables'); var_dump(distributed::getInstance()->query($sql)); //文件同步(不用安裝rsync+inotify就可以實(shí)現(xiàn)文件同步,并且是觸發(fā)式的占用很小的資源,調(diào)用sendfile零復(fù)制) $dir_pre=MYPATH.'/public/uploads/'; if(!is_dir($dir_pre.date('Ymd'))){ mkdir($dir_pre.date('Ymd'),0777,true); } if(is_uploaded_file($_FILES['file']['tmp_name'])){ $upname=explode('.',$_FILES['file']['name']); $filename=uniqid().substr(time(),-4).'.'.$upname[1]; if(move_uploaded_file($_FILES['file']['tmp_name'],$dir_pre.date('Ymd').'/'.$filename)){ echo "Stored in: " . $dir_pre.date('Ymd').'/'.$filename; $fileinfo = array('type'=>'file','data'=>array('path' =>'/public/uploads/'.date('Ymd').'/'.$filename,'size'=>$_FILES['file']['size'],'ext'=>$upname[1])); var_dump(distributed::getInstance()->queryfile($fileinfo)); }else{ echo 'Stored failed:file save error'; } }else{ echo 'Stored failed:no post '; } } 本地訪問:http:/localhost/index/distributed/
架構(gòu)圖
執(zhí)行結(jié)果如下
更多建議: