分布式服務(wù)器通訊服務(wù)

2020-07-29 17:27 更新
建立多個(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é)果如下

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)