codecamp

分布式服务器通讯服务

建立多个服务器之间进行数据通信服务,服务自动连接在线服务器,支持热拔,启动服务后自动连接,无需人为干预
注意事项:
    需要在conf/application.conf里配置端口和监听、日志等
    需要有一个redis服务器,并且分布式服务器都能连接redis
    web端可以直接调用服务
    使用如下
    //注意:type为sql、file,要是需要别的功能,自己定义
        if($_FILES){
        //数据同步
        $sql = array('type'=>'sql','data'=>'show tables');
        var_dump(distributed::getInstance()->query($sql));
        //文件同步(不用安装rsync+inotify就可以实现文件同步,并且是触发式的占用很小的资源,调用sendfile零复制)
            $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/

架构图 执行结果如下

composer 安装
thrift的rpc远程调用
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }