免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3215 | 回复: 2
打印 上一主题 下一主题

[FastDFS] 咨询关于fastdfs_for_nginx模块是否设置url_have_group_name的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-02 01:42 |只看该作者 |倒序浏览
本帖最后由 ruying 于 2014-04-02 09:16 编辑

余大及各位高手。
首先我不懂C开发,只能从OPS使用者的角度来咨询方案的思路和用途,请大家多多包含。
我的问题是从astdfs_for_nginx模块是否设置url_have_group_name为true开始的。
一旦设置url have group name 为false,那就代表这个nginx服务器要执行读操作时,会从mod_fastdfs.conf中取出tracker server的IP、默认的group name和默认的磁盘存储路径(store_path0)。
其中默认的groupID加上用户提供的remote_filename就是完整的fileID。
一旦设置url have group name 为true,那就代表这个nginx服务器要执行读操作时,会从mod_fastdfs.conf中取出tracker server的IP、用户直接提供完整的、带groupID的fileID。

请问我的理解是不是对的?
现在假设我的理解是对的,则我有个问题:
1,设置url have group name 为false 时,为什么要设置store_path0这类磁盘存储路径,是否有实际意义?我注释掉了该选项以后,文件是404错误。
2,一旦设置url have group name 为true ,然后在模块配置文件里配置该节点支持多个group,我仔细看配置文件,这个时候仍然要设置每个group的store_path0。
请如果用客户端fdfs_upload_file 上传下载文件,只要找准tracker,提交完整fileID就可以了,为什么用扩展模块就必须设置这个值?我朦胧的感觉跟URL中“M00”这一部分定义是访问哪块磁盘的选项有关。

更深入点对使用模式的理解,最终会出现两套nginx方案,请问我对两套方案的分析对不对,
1,设置url have group name 为false ,然后每个storage服务器上配置一个nginx,所有nginx只处理本group甚至本机的业务。
    这样做的好处,给我的感觉就是节省了nginx模块到storage节点的网络IO了,他俩交互数据不用走局域网了;但从其他方面来说都不如另一套方案。
    还有一个技术难点我无法理解,客户访问我方的URL可能是第一次生成后就写死到静态页面或数据库记录中的;url中有IP/主机名的部分,他们怎么知道一个group中有多少节点,哪个节点是可用的?
    如果解决不了这个技术难点,所有客户的访问请求都会被固定到一台storage 上,这不符合分布式文件系统设计的初衷,任何一个storage宕机都会影响客户读写数据。
2,一旦设置url have group name 为true,只在特定的一组机器上,专门跑nginx,每个nginx都要处理到所有group的请求。
    这样做的坏处就是网络IO占用比较多,nginx模块到storage节点要走内网交换机;在一个大规模的分布式存储网络里,网络IO可能是比磁盘IO更稀缺的资源。
    但这种方案的优点是易于部署,客户端可以写同一个IP/host,且这几台nginx服务器还可以加上缓存功能。

如果让我按个人喜好选,我肯定选nginx相对集中的方案,因为在我看来他的优点远大于缺点。但我在论坛上看有朋友说鱼大就是配置的每个storage上都有nginx server,且url have group name默认值是false。
我想请教一下鱼大,你设计这两种模式的时候,是怎么个思路,想把他们分别用到什么场景?各位已经在用fastdfs的朋友,你们自己用的什么模式?

论坛徽章:
0
2 [报告]
发表于 2014-04-02 13:32 |只看该作者
本帖最后由 ruying 于 2014-04-02 13:36 编辑


好吧,是我蠢了,加班太晚效率会低的。
正规的玩法是,每台机器上都必须装nginx,这个nginx取数据必然从本机来取,配置fastdfs模块的核心作用是:
1,从trunk 里取数据必须依赖该模块;
2,判定数据是否为新(通过和tracker通讯,获得storage_sync_file_max_delay和storage_sync_file_max_time)。
然后,如果前端用户访问,肯定还要在这一群nginx前面加个http代理(可以是nginx但不用装fastdfs插件),将这些服务器编组。这才是正常的容易理解的玩法。

设置url have group name 为false还是ture,仅仅是个小问题。牵扯的仅仅是最后一部访问时该提供什么URL,无伤大雅。

论坛徽章:
0
3 [报告]
发表于 2014-04-03 17:48 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP