高性能队列Fqueue的设计和使用实践.pptx
- 文档编号:18736744
- 上传时间:2023-10-23
- 格式:PPTX
- 页数:25
- 大小:752.09KB
高性能队列Fqueue的设计和使用实践.pptx
《高性能队列Fqueue的设计和使用实践.pptx》由会员分享,可在线阅读,更多相关《高性能队列Fqueue的设计和使用实践.pptx(25页珍藏版)》请在冰点文库上搜索。
高性能队列Fqueue的设计和使用实践,2011.11,孙立sunli1223,提纲,FQueue简介Fqueue的存储设计Fqueue的使用实践Q&A,Fqueue简介,Fqueue(FastQueue)提供跟Memcached一样的客户端分布式和高可用机制单实例多队列功能每个队列可设置安全认证密码可动态增加队列或者更改密码纯JAVA实现,可以内置到JAVA进程内使用simple,真的simple开源http:
/,Fqueue有多快,进程内每次写入10字节,909万qps86MB/s每次写入1024字节,19万qps185MB/s跨服务器多个client每次写入10字节,32万qps注:
QPS:
Query-per-second1秒钟内完成的请求数如上:
909万个请求,每个请求10字节,所以909万*10/1024/1024=86MB/s19万*1024/1024/1024=185MB/sRT:
Response-time1个请求完成的时间,Fqueue使用有多简单,下载-解压-启动直接使用,无需繁杂的参数优化,你总是能获得高性能的Queue队列服务器,Fqueue的存储设计,Fqueue的整体设计结构,Producer,Memcached接口,FSQueue持久化队列存储,Comsumer,管理、监控,Fqueue协议实现,FSQueue持久化队列存储,FSQueue持久化队列存储,架构在Memcached协议之上,add,get,Fqueue的存储结构设计,1,2,3,4,5,6,7,8,9,3,18,单文件顺序存储数据,存储出队和入队的位置,初始想法,问题:
出队数据不好删除,1,2,Fqueue的存储结构设计,Readoffset,Writeoffset,最终的结构,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,File1,File2,File3,ReadFileNo,WriteFileNo,数据顺序写数据顺序读IndexFile记录读写位置和文件编号IndexFile标记删除,不删除物理数据FileNo全部消费后,再删除FileNo文件。
IndexFile,选择读写实现方式-内存映射,JAVA的读写文件方式有很多,性能、特点都不一样,所以需要选择一个合适的。
测试方式:
循环顺序写入10字节数据1000万次,BufferedOutputStream虽然最快,但是易丢失数据,权衡之下,我们选择了MappedByteBuffer作为我们的文件操作实现,Fqueue一些优化,FileNo文件全部消费后,交给后台线程异步删除在新创建一个FileNo时,会让后台线程预创建下一编号的存储文件每10ms让OS强制刷盘每个Queue的读写都有自己的Queue级别writeLock,1、2在FileRunner.java中实现,Fqueue的使用实践,队列服务器的常见使用场景-缓解数据库写压力,app,数据库,直接Insertinto,应用的性能直接依赖于数据库的响应时间和性能,直接写数据库,队列服务器的常见使用场景-缓解数据库写压力,用户,queue,queue,数据库,处理job,高速队列,降低了应用写库的时间,能提高系统的写入吞吐量,应付高峰值,批量insert,合并写。
(批量插入可提升性能),用队列服务器应付高峰写入,队列服务器的常见使用场景-缓解数据库写压力,用队列服务器应付高峰写入,用户,queue,queue,数据库,处理job,数据库宕机,队列部分宕机不影响应用的正常服务,队列服务器的常见使用场景-缓解数据库写压力,用了队列服务器,如何实现实时性?
用户,queue,queue,数据库,处理job,实时缓冲区,用户,数据库,复制,merge,队列服务器的常见使用场景-任务处理,比如发送邮件,分组发送,队列服务器的常见使用场景-任务处理,自描述任务,/存储逻辑到队列memcachedClient.add(job_pass,0,#!
/bin/shrnsomecode);memcachedClient.add(job_pass,0,);,/执行代码Stringcode=memcachedClient.get(job_pass);Stringresult=RunJob.runCode(code);,队列服务器的常见使用场景-数据收集,日志收集,app,app,app,queue,queue,统计系统,日志监控报警系统,系统性能分析系统,低延迟,速度稳定,延迟比较高,速度不稳定,可能跨机房,日处理1亿日志的队列服务资源占用截图,高峰期不超过20%,队列服务器的常见使用场景-解耦程序,视频网站的用户视频上传流程,Fqueue的使用,PHP使用,Java使用(Xmemcached),Fqueue的使用-分布式与key的设计,Hash(key_pass)始终只会hash到一台。
(HA)Hash(key_pass_固定字符串),固定hash到3三台,可用于负载均衡。
Hash(Key_pass_变化字符串),随机hash到三台,可用于负载均衡。
Fqueue1,Fqueue2,Fqueue3,client,Fqueue实践-Q的火车票余票抓取,火车票系统,Memcached,余票抓取任务,Fqueue,处理程序,处理程序,处理程序,后台定时任务,清除堆积数据,Fqueue,Fqueue实践-监控,谢谢,加入我们吧,Q&A,各种技术人员,简历投递到微博联系:
http:
/,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 性能 队列 Fqueue 设计 使用 实践
![提示](https://static.bingdoc.com/images/bang_tan.gif)