• UID12
  • 登录2016-06-14
  • 粉丝109
  • 关注50
  • 发帖1415
  • 主页
  • 金币8512枚
社区居民
最爱沙发
忠实会员
喜欢达人
原创写手
极分享 发布于2016-06-02 16:43
0/361

来自360的产品级的高性能分布式存储服务

楼层直达

huststore - 高性能分布式存储服务

 

源码:https://github.com/Qihoo360/huststore

huststore logo

huststore 是一个高性能的分布式存储服务,不但提供了 100 thousand QPS 级别的 kv 存储的功能,还提供了hashsetsort set 等一系列数据结构的支持,并且支持 二进制 的 kv 存储,可以替代 Redis 相关的功能。此外,huststore 还结合特有的 HA 模块实现了分布式消息队列的功能,包括消息的流式推送,以及消息的 发布-订阅 等功能,可以替代 rabbitmq or gearman 相关的功能。

特性

huststore 分为 hustdb 以及 HA 模块两大部分。hustdb (存储引擎)的底层设计采用了自主开发的 fastdbHA 以 nginx模块的方式开发。nginx 是工业级的 http server 标准,得益于此,huststore 具备以下特性:

  • 高吞吐量
    hustdb 的网络层采用了开源的 libevhtp 来实现,结合自主研发的高性能 fastdb 存储引擎,性能测试 QPS 在 100 thousand 以上。
  • 高并发
    参考 nginx 的并发能力。
  • 高可用性
    huststore 整体架构支持 Replication (master-master),支持 load balance 。
    HA 的可用性由nginx 的 master-worker 架构所保证。当某一个 worker 意外挂掉时, master 会自动再启动一个worker 进程,而且多个 worker 之间是相互独立的,从而保证了 HA 的高可用性。
    huststore 的高可用性由其整体架构特点保证。由于 hustdb 的存储节点采用了 master-master 的结构,当某一个存储节点挂掉时,HA 会自动将请求打到另外一台 master;同时 HA 会自动进行负载均衡,将数据分散存储在多个 hustdb节点上,因此存储引擎不存在单点限制。
    同时 HA 集群本身也是分布式的设计,而且每个 HA 节点都是独立的,当某一台 HA 挂掉时, LVS 会自动将请求打到其他可用的 HA 节点,从而解决了 HA 得单点限制。
  • 通用性的接口
    huststore 使用 http 作为通用协议,因此客户端的实现不限制于语言。
  • 支持二进制的 key-value

运维

架构

architect

部署

  • 分布式KV存储 = HA(hustdb ha) + DB(hustdb)
  • 分布式消息队列 = HA(hustmq ha) + DB(hustdb)

存储引擎(fastdb)

hustdb

依赖

文档

目录

以上包含了 huststore 从设计、部署、API 到测试样例的详细文档,并提供了 FAQ 对常见问题进行快速检索。

快速入门

API

进阶

FAQ

目录

项目目录结构如下:

hustdb
  doc
  db
  ha
  sync
hustmq
  doc
  ha

hustdb/ha 服务于存储引擎,可以配置多个 worker
hustmq/ha 服务于消息队列,只能配置单个 worker

性能

hustdb

机器配置: 24core,64gb,1tb sata(7200rpm)

压测参数: 100 concurrent,1000 thousand querys

DB CONF: single instance,thread model,10 workers

测试结果:

(1)PUT
    <1>value:256B;     qps:95 thousand
    <2>value:1KB;      qps:85 thousand
    <3>value:4KB;      qps:25 thousand
    <4>value:16KB;     qps:7 thousand
    <5>value:64KB;     qps:2 thousand

(2)GET
    <1>value:256B;     qps:100 thousand
    <2>value:1KB;      qps:10 thousand
    <3>value:4KB;      qps:25 thousand
    <4>value:16KB;     qps:7 thousand
    <5>value:64KB;     qps:2 thousand

(3)DEL
    <1>value:256B;     qps:100 thousand
    <2>value:1KB;      qps:100 thousand
    <3>value:4KB;      qps:100 thousand
    <4>value:16KB;     qps:100 thousand
    <5>value:64KB;     qps:100 thousand

hustmq

机器配置: 24core,64gb,1tb sata(7200rpm)

压测参数: 100 concurrent,1000 thousand querys,single queue

DB CONF: single instance,thread model,10 workers

测试结果:

(1)PUT
    <1>item:256B;     qps:30 thousand
    <2>item:1KB;      qps:25 thousand
    <3>item:4KB;      qps:20 thousand
    <4>item:16KB;     qps:7 thousand
    <5>item:64KB;     qps:2 thousand

(2)GET
    <1>item:256B;     qps:25 thousand
    <2>item:1KB;      qps:20 thousand
    <3>item:4KB;      qps:18 thousand
    <4>item:16KB;     qps:7 thousand
    <5>item:64KB;     qps:2 thousand

LICENSE

huststore is licensed under New BSD License, a very flexible license to use.

Authors


0人打赏
您需要登录后才可以回帖
发表回复
极贡献
技术问答
专题荟萃
程序人生
视觉设计
Android开发
iOS开发
编程语言
前端开发
后端开发
服务器架构
软件测试
运维方案
创业路上



最热文章墙

  • 57912/339   【精品推荐】200多种Android动画效果的强悍框架,太全了,不看这个,再有动画的问题,不理你了^@^

  • 31054/139   省时省力的Android组件群来了,非常棒的原型参考

  • 30751/187   情人节福利,程序员表白的正确姿势:改几行代码就变成自己的表白了

  • 27543/217   【精品推荐】Android版产品级的音乐播放器源码,功能太强大了,最好的产品原型有木有?

  • 25778/2   超全!整理常用的iOS第三方资源

  • 24029/70   原创表白APP,以程序员的姿势备战新年后的7夕,持续完善中!

  • 22801/0   Python爬虫:常用浏览器的useragent

  • 21789/137   2016抢红包软件及源码

  • 19636/29   麻省理工的一帮疯子,真的实现了随意操控万物!(绝对黑科技)

  • 19484/25   Android工程师面试题大全

  • 18774/27   2016程序员跳槽全攻略

  • 18681/9   GitHub上排名前50的iOS项目:总有一款你用得着

  • 18235/20   码魂:程序员的牛B漫画

  • 16675/3   吐槽那些程序员的搞笑牛逼注释

  • 15855/147   Android版类似UC浏览器:非常赞,产品级的源码

  • 15478/1   iOS 动画总结

  • 14860/41   一个绚丽的loading动效分析与实现!

  • 14457/10   女程序员的梦,众网友的神回复

  • 14288/83   Android小而全的博客源码:非常适合全面掌握开发技巧

  • 14279/73   【持续更新中】Android福利贴(二):资料源码大放送

  • 14261/11   年会上现场review代码是怎么样的体验!

  • 14172/44   惊艳的App引导页:背景图片切换加各个页面动画效果

  • 13849/5   新一代Android渠道打包工具:1000个渠道包只需要5秒

  • 13762/10   2016年最全的Android面试考题+答案 精编版

  • 13725/23   个人收集的Android 各类功能源代码

  • 12953/19   珍藏多年的素材,灵感搜寻网站

  • 12849/53   基于瀑布流的美女图片浏览App,有注释的源代码

  • 12492/15   基于Android支付宝支付设计和开发方案

  • 12471/17   用JavaScript 来开发iOS和Android 原生应用:React Native开源框架中文版来啦

  • 12183/74   仿京东商城客户端Android最新版,不错的原型和学习资料

  • 12167/20   Android福利第三波【Android电子书】

  • 12102/17   什么是真正的黑客:收获12200+Stars,人气远超微软开源VS

  • 11666/18   65条最常用正则表达式,你要的都在这里了

  • 11586/94   Android带弹幕的视频播放器源码,来自大名鼎鼎的Bilibili弹幕网站

  • 11557/7   用程序员的姿势抢过年的火车票

  • 11554/70   【精品推荐】类似360安全卫士安Android源码:非常赞的产品原型

  • 11452/7   一张图搞定iOS学习路线,非常全面

  • 11338/11   有木有这样一张酷图帮你集齐所有git命令超实用

  • 11155/0   iOS中文版资源库,非常全

  • 10956/10   成为Java顶尖程序员 ,看这11本书就够了

  • 10559/18   一张图搞定Android学习路线,非常全面

  • 10523/10   微信支付终于成功了(安卓,iOS),在此分享

  • 10179/3   基于Node.js的强大爬虫,能直接发布抓取的文章哦

  • 10094/0   GitHub iOS 库和框架Top100 

  • 10086/44   在线音乐播放器完整版(商用级的源码):非常赞,可听免费高品质专辑

  • 10079/29   【持续更新中】Android福利贴(一):资料源码

  • 9720/4   46 个非常有用的 PHP 代码片段

  • 9371/3   即时通信第三方库

  • 9339/9   烧了5亿美金,这家神秘的公司即将颠覆人类未来!

  • 9208/8   流媒体视频直播方案

  • 9186/61   【技巧一】搭配Android Studio,如何实现App远程真机debug?

  • 9065/9   B站建开源工作组:APP想支持炫酷弹幕的看过来

  • 9009/2   【精品推荐】高质量PHP代码的50个实用技巧:非常值得收藏

  • 8918/9   中国黑客的隐秘江湖:攻守对立,顶尖高手月入千万美元

  • 8892/18   八个最优秀的Android Studio插件

  • 8453/6   开箱即用!Android四款系统架构工具

  • 8362/3   一张图看清Linux 内核运行原理

  • 8255/3   10款GitHub上最火爆的国产开源项目——可以媲美西半球

  • 8237/10   十大技巧快速提升Android应用开发性能

  • 7906/1   Android性能优化视频,文档以及工具

  • 返回顶部