# 1 Weedfs
weed-fs,全名Seaweed-fs,是一种用golang实现的简单且高可用的分布式文件系统。该系统的目标有二:
- 存储billions of files
- serve the files fast
weed-fs起初是为了搞一个基于Fackbook的Haystack论文的实现,Haystack旨在优化Fackbook内部图片存储和获取。
后在这个基 础上,weed-fs作者又增加了若干feature,形成了目前的weed-fs。
Weed-FS 是一个简单和高可伸缩的分布式文件系统,用于快速存储大量的文件。Weed-FS 不支持 POSIX 文件系统,使用 key~file 映射结果,因此也叫 NoFS。
* 首页 github.com/chrislusf/seaweedfs
分布式存储 WeedFS 源码分析
http://www.qixing318.com/article/853901115.html
# 2 protobuffer
Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。
http://www.cnblogs.com/stephen-liu74/archive/2013/01/02/2841485.html
Google Protocol Buffer 的使用和原理
https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html
# 3 ngrok
Tunnel Server 提供P2P的NAT穿透 https://github.com/inconshreveable/ngrok
# 4 leveldb
# 5 KiteQ
基于go+protobuff实现的多种持久化方案的mq框架
https://github.com/blackbeans/kiteq
* 基于zk/etcd维护发送方、订阅方、broker订阅发送关系、支持水平、垂直方面的扩展
* 基于与topic以及第二级messageType订阅消息
* 基于mysql、文件存储方式多重持久层消息存储
* 保证可靠异步投递
* 支持两阶段提交分布式事务
* 自定义group内的Topic级别的流控措施,保护订阅方安全
* kiteserver的流量保护
* 客户端连接上报系统预热时间,根据预热时间逐步放量推送消息
* Client Supported:Java、Go、CPP、PHP