博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MogileFS学习笔记(1)
阅读量:5960 次
发布时间:2019-06-19

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

  hot3.png

MogileFS


MogileFS 服务请求处理流程

1. 用户浏览器发送"GET/foo"请求到负载均衡服务器2. 请求分配到应用服务器(perl,php,ruby等)3. 应用请求MogileFS的Tracker(mogilefsd进程)获取文件位置(或者缓存处理等)4. 应用返回包含文件地址 'X-REPROXY-URL: http://path/from/mogilefs/tracker'的header5. 拦截header,返回对应的文件

MogileFS高效的原因在于不用读取相应的文件再返回,而是直接从数据库查找并返回文件的存储位置

MogileFS图片系统处理流程:

1. 客户端请求图片(带宽高等参数)2. 图片处理服务程序3. 程序判断是否有对应的缓存,有则直接返回4. 调用MogileFS Tracker 查找文件5. 对图片进行处理(缩放,水印,裁剪等)6. 缓存图片7. 返回请求文件

MogileFS相关安装介绍参考,详细英文文档

MogileFS高级

  • Application : 应用,存储和读取文件

  • Tracker (mogilefsd进程): 基于事件的父级 process/message bus,管理所有的来自应用的客户端通信请求。包括均衡请求到"Query workers",处理所有的mogilefsd与子进程之间的通信。 可以在不同的主机上运行两个tracker,或者更多的用于负载均衡(推荐使用多个tracker).mogilefsd的子进程包括:

    • Replication 文件复制
    • Deletion 文件删除
    • Query 查询
    • Reaper reenqueuing files for replication after a disk fails
    • Monitor 主机和device状态监视器
  • Database : 存储MogileFS的meta数据(namespace,文件对应路径).

  • Storage Nodes : 文件存储节点

MogileFS工作原理

  • app发送请求打开一个文件
  • Tracker 做一些负载均衡的处理,决定在哪儿处理,会返回给app一些可用的位置
  • app使用其中一个位置存储文件
  • app 通过 “create_close” API 通知tracker 文件的写入位置
  • tracker 将名称加入domain的namespace(通过数据库)
  • app通过(key == "filename")向该domain发送一个get_paths请求,tracker在通过数据库或缓存系统等获取文件的保存位置,所有的该文件可访问的URL,基于权重的存储位置 ,返回响应结果
  • app按顺序尝试URL

其他

可以直接使用WebServer处理文件请求,无需后端程序(比如PHP)

转载于:https://my.oschina.net/kisay/blog/199607

你可能感兴趣的文章
[网络流24题-9]试题库问题
查看>>
jquery选择器详解
查看>>
C# 保留2位小数
查看>>
使用xshell远程连接Linux
查看>>
杭电ACM1007
查看>>
faster-RCNN台标检测
查看>>
Unix环境高级编程 centos中配置apue编译环境
查看>>
运算符
查看>>
数据结构之各排序算法
查看>>
网页分帧操作<frameset>,<iframe>标签
查看>>
Vue生产环境部署
查看>>
酒店之王
查看>>
html5判断用户摇晃了手机(转)
查看>>
VS下Qt4.8.4安装
查看>>
Linux df命令
查看>>
redhat6.5 配置使用centos的yum源
查看>>
取得内表的数据数
查看>>
在一个程序中调用另一个程序并且传输数据到选择屏幕执行这个程序
查看>>
“=” “:=” 区别
查看>>
pwnable.kr lotto之write up
查看>>