文档章节

MogileFS学习笔记(1)

kisay
 kisay
发布于 2014/02/13 15:46
字数 598
阅读 411
收藏 1

MogileFS


MogileFS 服务请求处理流程

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

© 著作权归作者所有

kisay
粉丝 1
博文 1
码字总数 598
作品 0
海淀
程序员
私信 提问
加载中

评论(1)

TBWU
TBWU
博主对Mogilefs用了多久了,加个交流方式Q291256823
分布式存储MogileFS介绍

MogileFS介绍 MogileFS 是一个开源的分布式文件存储系统,由LiveJournal旗下的Danga Interactive公司开发。 Danga团队开发了包括 Memcached、MogileFS、Perlbal 等多个知名的开源项目。 目前...

cstsncv
2018/04/13
0
0
MogileFS-2.44 安装与配置

MogileFS-2.44 安装与配置 一、MogileFS 介绍< xmlnamespace prefix ="o" /> MogileFS 是一个开源的分布式文件系统,用于组建分布式文件集群,由 LiveJournal 旗下 Danga Interactive 公司开......

youyu2299
2013/12/07
0
0
Nginx反代Mogilefs分布式储存示例

一、分布式存储系统简介   随着信息技术不断的发展,给我们带来便利的同时,不断增加的数据量级、信息之间的连接关联越来越复杂、数据访问的并发量日益增加对I/O的要求越来越高、数据类型越...

Ala6
2018/11/04
0
0
mogileFS 分布式存储-安装手记

环境是centos 呃,装个玩意儿走了好多弯路,以为依赖太多的包河模块,搞了很久. 后来发现其实安装可以简化的,yum没有mogilefs,可以通过epel来安装. 第一种安装方法,用epel # rpm -Uvh http://do...

晨曦之光
2012/03/09
368
0
简单的MogileFS-2.44安装及配置过程记录一下

1:安装相关的Perl模块 首先要安装perl # yum install perl 以下Perl模块均可使用以下命令进行安装,如安装Sys::Syscall模块。 # cpan –I Sys::Syscall Sys::Syscall Danga::socket BSD::Re...

刘纪君
2013/03/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

携程 | 如何管理敏捷团队知识资产

不就是做团队的知识管理吗?至于这么兴师动众吗? 如果说在农耕时代,人类种庄稼需要储存种子;在工业时代,生产需要囤积燃油和钢铁;那么如今,在信息时代,对我们而言来说最重要的原材料是...

携程技术中心PMO
7分钟前
0
0
Spring Boot 2 AOP方式实现多数据源切换

支持的数据源类型为druid和spring boot 2的默认数据源hikariCP ,如果需要支持其他类型数据源可自行添加。 实现思路为通过解析数据源配置文件创建数据源,然后使用Spring提供的AbstractRouti...

325G
24分钟前
8
0
Beautiful Soup模块使用

1.Beautiful Soup模块的介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库,简单来说,它能将HTML的标签文件解析成树形结构,然后方便地获取到指定标签的对应属性,还可以...

彩色泡泡糖
24分钟前
0
0
Android进程系列第六篇---LowmemoryKiller机制分析(上)

内容预览 二、概述 前面进程系列已经更新了五篇,本文(基于Android O源码),梳理LMK杀进程机制上篇,主要总结AMS和LowmemoryKiller通信的方式以及LowmemoryKiller的原理。 Android进程系列...

天王盖地虎626
30分钟前
0
0
360浏览器自定义设置内核模式说明

浏览器内核模式优先级(以下4条仔细阅读并理解,特别是红字) 手动切换>浏览器兼容列表>meta指定 1、强制锁定极速模式不对外开放(无法切换),比如淘宝、360导航(开发者想用极速模式,建议...

石头帽
32分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部