当前位置: 首页 > 后端技术 > PHP

分布式文件服务器dfs

时间:2023-03-29 18:56:24 PHP

核心特点1.基于swoole和inotify实现分布式文件服务2.使用协议包实时同步文件,性能高,使用sendfile传输文件,内存和CPU占用小3.实时文件监控监控子目录服务4.自动断线重连服务5.自动扫描本地已有文件目录实时同步服务需要php以cli方式运行/server.phpphpserver.phpstartphpserver.phpstopphpserver.phprestartcomposerinstallation{"require":{"qieangel2013/dfs":"0.1.6"}}安装swoole扩展和inotify扩展修改/config/config.php文件对应的配置原则dfs是一个基于swoole和inotify的分布式文件同步服务器框架,它是通过inotify实现的实时监控文件及其目录,基于swoole事件驱动读取inotify事件进行相应的逻辑处理,dfs框架的服务一旦启动,就会通过redis获取远程服务器的在线列表,然后启动客户端自己连接远程Server,每个服务器有一个server和多个client,这样每个server都可以互联互通,并且支持热插拔,一旦服务器不提供服务,会触发其他服务器与其断开连接,实现高可用!DFS配置定义('ServerIp',"0.0.0.0");配置服务器监听ip地址define('ServerPort',"9508");配置服务器监听端口define('ServerLog',dirname(DIR).'/log/FileDistributed.log');配置服务器日志路径define('redis_server','192.168.102.163');配置redis连接ip,注意redis启动时bindip不能是127.0.0.1define('redis_port','6379');配置redis的端口号define('redis_auth','123qwe');redis认证密码define('LISTENPATH',dirname(DIR).'/img');配置监听目录,dfs支持无限子目录监听define('allsysnc',true);是否允许扫描本地现有文件或目录同步define('maxpackage',10241024200);配置协议包的最大长度define('Bincmd','/usr/local/php/bin/php');配置php的绝对路径define('file_arg','dfs');配置项目名称dfs的使用其实很简单,就是只要配置好配置文件就可以启动服务了。使用dfs框架时,请注意swoole的版本要在1.8.9以上,因为之前的版本sendfile存在一些bug。如果单个文件大于20m,请修改文件中package_max_length的值,但这个值不要设置太大