分布式文件服务器dfs

核心特性php

1.基于swoole和inotify实现分布式文件服务 2.采用协议包来实时同步文件、性能很高,采用sendfile传送文件,内存、cpu占有率不多 3.文件实时监控及监控子目录服务 4.自动断线重连服务 5.自动扫描本地已存在的文件目录实时同步服务redis

须要php以cli模式运行/server.php服务器

php server.php start
php server.php stop
php server.php restartswoole

composer 安装composer

{框架

"require": {
        "qieangel2013/dfs": "0.1.6"
 }

}分布式

安装swoole扩展和inotify扩展
修改/config/config.php文件相应的配置性能

原理
dfs是基于swoole和inotify实现的分布式文件同步服务器框架,他借助于inotify实现实时对文件及其目录进行监控,基于swoole的事件驱动读取inotify的事件来作相应的逻辑处理,dfs框架的服务一旦启动,他会经过redis获取远程服务器在线列表而后自身启动客户端来链接远程服务器,每个服务器都有一个服务端和多个客户端,这样每台服务器都能互通互联了,而且支持热拔,一旦服务器不提供服务了都会触发别的服务器跟其断开链接实现高可用!ui

clipboard.png

DFS 配置
define('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启动时bind的ip不能为127.0.0.1
define('redis_port','6379');配置redis的端口号
define('redis_auth','123qwe');redis认证密码
define('LISTENPATH',dirname(DIR).'/img');配置监听目录,dfs支持无限子目录监听
define('allsysnc',true);是否容许扫描本地已存在的文件或者目录同步
define('maxpackage', 1024 1024 200);配置协议包的最大长度
define('Bincmd', '/usr/local/php/bin/php');配置php的绝对路劲
define('file_arg', 'dfs');配置项目名称spa

dfs的使用其实很简单,就是只要配置好配置文件,启动服务就能够了

在使用dfs框架时注意swoole的版本最好为1.8.9以上,由于以前的版本有sendfile的部分bug, 若是单个文件大于20m,请修改文件里的package_max_length的值,可是这个值不要设置太大

相关文章
相关标签/搜索