码迷,mamicode.com
首页 > 其他好文 > 详细

CMU440-P2 Tribbler(类推特的发布订阅系统)设计文档

时间:2014-08-05 13:20:29      阅读:436      评论:0      收藏:0      [点我收藏+]

标签:style   http   java   使用   os   io   strong   数据   

 

一、开发工具

 

1.    本项目使用Golang进行开发,主要有以下好处

 

  • Golang是一种类型安全(type-safe)的语言,并且自带垃圾回收机制,避开了许多底层语言如C/C++中的陷阱
  • 引入了许多轻便实用性强的数据结构,比如变长数组,字典等
  • 提供了大量的包其中包括网络库,RPC等供编程者使用,使得开发效率更高
  • Golang支持了一种相比传统的共享内存式的并发模型(比如Java threads)更加轻便抽象的并发模型(消息传递机制)

 

2.    版本控制工具采用git

 

3.    开发环境:sublime text2+gocode

 

二、概述

本项目为卡耐基梅隆大学分布式系统(CMU440)课程项目。

课程主页:http://www.cs.cmu.edu/~dga/15-440/S14/syllabus.html

源代码:https://github.com/201101050424/Project-2-Tribbler

本项目的架构共分为三层:

  • client层:client层是用户交互层,它接受并解释用户提交的命令,并将它提交给appliction层
  • appliction层:appliction层充当整个Tribbler系统的控制层,它充当了一个可以持久提供服务的server,每个server都有一个Libstore库,该库用来和storage层进行交互,并实现了基于租约的缓存一致性机制
  • storage层:storage层提供了key/value对存储服务(类似hash表),每个storage server实现了Get、Put、GetList、AppendToList、RemoveFromList接口,并有以下特点
    • 运用一致性hash原理,将存储数据分布在存储集群上
    • 支持基于租约的缓存一致性机制

架构图:

bubuko.com,布布扣

层之间通过Http RPC进行通信

三、架构阐述

1.    client层:该层直接与用户交互,接受用户的提交的命令并进行解释后发送给application层,接口如下

  • CreateUser:创建用户,通过RPC将userID注册到TribblerServer上
  • GetSubscription:获取某用户的订阅列表
  • AddSubscription:为某用户增添新的订阅用户
  • AddSubscription:为某用户删除已订阅客用户
  • GetTribbles:获取某用户的推文
  • GetTribblesBySubscription:获取某用户订阅者的推文
  • PostTribble:为某用户发布推文

2.    TribblerServer层分为两部分,TribblerServer和Libstore,TribblerServer主要对client实现RPC,调用了Libstore,下面重点阐述Libstore

 

CMU440-P2 Tribbler(类推特的发布订阅系统)设计文档,布布扣,bubuko.com

CMU440-P2 Tribbler(类推特的发布订阅系统)设计文档

标签:style   http   java   使用   os   io   strong   数据   

原文地址:http://www.cnblogs.com/woaishizhan/p/3891706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!