Seafile项目经验分享_第1页
Seafile项目经验分享_第2页
Seafile项目经验分享_第3页
Seafile项目经验分享_第4页
Seafile项目经验分享_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

开源的企业文件云存储平台潘凌涛@freeplant内容提纲产品介绍,Seafile是什么工程理由,为什么要做Seafile工作原理,Seafile是怎么工作的经验分享,从Seafile工程从学到的经验Seafile是什么Seafile是一个面向企业、团队的云盘,解决文件管理和共享的问题。在此根底上,Seafile提供群组协作的功能,形成一个以文档为中心的协作平台。资料库和个人页面群组页面和讨论机构页面资料库页面客户端为什么要做Seafile文件管理和共享和企业/团队的最根本的需求。Seafile就是要做一个高质量的开源的企业云存储平台。同时参加协作功能,形成一个创新的产品。Seafile特色群组协作功能端到端加密小巧/高性能,可部署于非常多的平台10000次/月的效劳器软件下载1300+GithubStarSeafile怎么工作–资数据料库模型一个资料库是一个带历史的去重的文件系统Seafile怎么工作–数据存储文件对象,目录对象,文件块存在操作系统的文件系统上,或者S3/Swift/Ceph这样的外部存储中。结构化数据存在MySQL或者SQLite。定期到效劳器查看最新的Commit下载文件和元信息,和本地内容归并本地有修改,生成新的Commit,并增量上传到效劳器同步算法Seafile怎么工作–架构Ccnet负责通信,Seahub网站界面,HttpServer模块负责网页端的文件上传下载。Seafile负责数据管理和同步。实现语言选择Ccnet/Seafile/HttpServer用C语言实现,使用libevent事件循环+线程池处理异步任务的架构。Seahub使用PythonDjango框架。TaskDaemon处理后台发邮件等任务,用Python语言。实现语言选择进程间通信使用自己设计的RPC。用python和c都上实现了一遍RPCServer/Client。用json来做数据交换的格式,以支持跨语言的数据交换。Seafile工程经验产品设计架构设计实现技术选择产品设计在确定功能核心的根底上,列出最小功能集合,把易用性和符合群众习惯放在第一位来进行设计产品设计Seafile的核心是团队文件共享,群组和多资料库同步是最根本的功能多资料库同步照成了一定的入门难度,但是我们认为是必要的。产品设计原来为了方便,客户端的界面是用Python来实现了一个本地的Web界面。造成了不少混淆,这是不符合群众习惯的反面例子。后来我们改成了Qt。架构设计客户端不应该采用复杂的多进程架构通信协议选择程序内部的多组件(可能分布在多个机器上)通信,效率和便捷性是第一位的,在TCP协议上直接设计一套RPC是最好的。多程序间以及互联网的通信,互操作性才是最重要的。HTTP协议才是互联网标准的通信协议。通信协议选择–HTTP协议HTTP的害处是比较复杂,它不是一个为传输文件而设计的协议。在处理文件传输的时候,有太多的小陷阱。好处是一旦使用了Http协议,你的应用就能使用上Proxy,Cache,LoadBalance这些根底效劳。实现语言选择客户端:C/C++是最好,最成熟的跨平台语言效劳器:Python写Web和脚本都是非常好的选择。追求性能的地方要用C。总结难点:无论是效劳器还是客户端都要运行在多个平台上。功能选择还有架构设计上都要保持简单。使用最成熟的、支持最广泛的实现技术。如果重新编写客户端使用单进程,用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论