分布式文件服务器dfs

核心特性

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

需要php以cli模式运行/server.php

php server.php start
php server.php stop
php server.php restart

composer 安装

{

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

}

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

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

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');配置项目名称

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值