博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式文件服务器dfs
阅读量:6956 次
发布时间:2019-06-27

本文共 1261 字,大约阅读时间需要 4 分钟。

核心特性

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的值,但是这个值不要设置太大

转载地址:http://tutil.baihongyu.com/

你可能感兴趣的文章