网站性能扩展案例:每天30-50亿请求,300K QPS是如何炼成的

news/2024/5/10 8:30:22/文章来源:https://blog.csdn.net/weixin_30664615/article/details/97800755
网站性能扩展案例:每天30-50亿请求,300K QPS是如何炼成的


Reduce Data广告服务网站(http://reducedata.com)如何扩展到每天300K QPS请求?分享经验如下:

1. 为大规模而设计,广告服务平台从一开始增长就很惊人,因此,系统开始就为大规模设计,系统为水平和垂直伸缩扩展。

2.选择CAP定理中的AP(可用性和分区容错性)二不是CA(一致性和可用性),因为广告拍卖与服务平台是追求低延迟和高性能,数据的高一致性不是非常关键。

3.没有锁定专门厂商软件或专利技术的限制使用,积极使用开源软件,开源软件已经达到非常成熟的程度。

4.基于Mechanical Sympathy(顺硬件之势而为)构建系统,一个软件的建立应该是基于理解硬件如何工作以及如何更好利用硬件。

5.云技术的限制使用,他们很早就决定对云技术的有限使用,因为a)EC2和计数部分往往非常昂贵;b)在对EC2早期的测试中发现网络抖动jitter、磁盘虚拟化等会增加延迟。

6. 延迟总是存在,对付它而不是设法消除它。所有查找都应该发生在1ms以下。 利用RocksDB和各种其他解决方案作为主要的缓存/嵌入式数据库。

7.使用SSD固态硬盘降低延迟

8.没有虚拟化硬件,充分利用高配置硬件(256G内存和24核机器)并行化许多计算。

9.磁盘写操作,每N秒定时flush写入大块数据

10.Nginx用于支持keep-alive连接,而Netty优化支持大型并发负载。

11.为了保证广告服务器中关键数据始终是立即可用(访问延迟以微秒计),所有这些数据都是存储内存中库/数据结构中。

12.架构应该使用share nothing,当我们增减服务器时,系统应该是丝毫不受影响,眼睛都不会眨一下。

13.所有关键数据 结果都需要复制。

14.保持每天的原始记录日志拷贝

15.如果数据有点脏,系统发生数据不一致性,这一切也是正常

16.消息系统应该是容错的,它们可以崩溃但是不会丢失数据。


下面是具体设施情况:
跨3个数据中心的40–50节点(primarily US and two nodes in Germany)

其中30台运行高计算 (128–256G RAM, 24 cores, top of the line CPUS and where possible SSDs)

其余机器配置低一些, 32G RAM, Quadcore 机器.

10G 私有网 + 10G 公网

小型 Cassandra, Hbase 和 Spark 集群.


使用关键技术是:

1.HBase 和 Cassandra 用于计数聚合,以及管理用户和账号数据集, Hbase 因为其高性能写操作,能够很好处理计数器,并提供近实时的分析。

2.后端主要语言是 Java. 尽管有C++ 和 Erlang经验,但是Java有更可用的成熟技巧以及过去几年JVM相当成熟。

3.使用Google Protobuf进行数据传输

4. Netty作为主要后端服务器,感谢其简单和高性能特点。

5.RocksDB作为用户配置读写, 它是一个嵌入在每个广告出价人中的嵌入式数据库,用户配置通过Apache Kafka跨RocksDB同步数据。

6. Kafka作为主要的消息队列,流化数据处理。

7.CQEngine作为主要的基于内存 快速查询系统,使用原子对象存储数据。

8. Nginx作为主要的反向代理.

9. Apache Spark用于为ML机器学习处理而需要的快速数据处理。

10.Jenkins 用户CI持续集成

11. Nagios 和 Newrelic用于监视服务器。

12. Zookeeper用于分布式同步。

13. Dozens of third parties for audience segments, etc.

14. Bittorrent Sync用于跨节点和数据中心同步关键数据。

15. 基于雅虎白皮书的预算控制定制的配额管理。


最后,他们在提高改进部分提到了引入LMax的Disruptor框架进行预先聚合,提高跨RocksDB数据的内部复制方式。

 

 

posted on 2016-04-12 09:18 吊炸天的阿旺 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/iamnumone/p/5381374.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_820716.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件设置索引_咻咻SEO:上线3个月迟迟未收录,找大神才知道网站地图是错的,如何设置robots、sitemap...

一、网站地图/sitemap制作流程:XML:主要针对搜索引擎制作,提高网站各页面收录率;HTML:主要针对用户制作,索引用户浏览网站内容。Sitemap:谷歌制定规则,100个网页链接地址。提高蜘蛛工…

程序员经常去的网站

收集了一些程序员平时经常去的网站,还希望大家集思广益,多做补充 csdn http://www.csdn.net/java 中文站 http://www.java-cn.com/博客园 http://www.cnblogs.com/开源中国社区 http://www.oschina.net/安卓巴士 http://www.apkbus.com/看…

浅谈SEO翻倍提升网站流量

本文是在简单了解并且熟悉SEO技术的基础上加上自己的总结归纳,对于SEO还是一个长期的工程不是一天就能一下优化排名第一。下面就是我对SEO的一些见解: 一、关键字选择 内容相关搜索次数多,竞争小主关键词不可太宽泛主关键词也不可太特殊商业价…

网站开发div在Jquery中的鼠标事件失去焦点

网站div在Jquery中的鼠标事件失去焦点,今天在做网站开发的时候遇到了个问题,就是我在用Jquery做导航的时候,用到了Jquery的鼠标事件mouseout,但问题出来了,我有两个div,A的div包含了B的div,本来…

使用C#实现网站用户登录

我们在写灌水机器人、抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录。那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的。 HTTP协议是一个无连接的协议,也就…

小网站架构优化:从100并发抗到4000并发

前言: 很久前,在512M内存Access的VPS里,写过了一个经典的秋色园技术原理解析系列。后来的某一天,换上了1G内存MSSQL2000,秋色园又跑过了一个多年头。之后,秋色园和 CYQ.Data,也在一直默默的优化…

【系统架构】大型网站架构系列:缓存在分布式系统中的应用(二)

原文地址 缓存是分布式系统中的重要组件,主要解决高并发,大数据场景下,热点数据访问的性能问题。提供高性能的数据快速访问。 本文是缓存在分布式应用第二篇文章,介绍分布式缓存,Memcache,Redis&#xff0c…

python 抓取小说网站,制作电子书。

分析目的(或者说要达到的效果) 实现一个小说下载器,输入小说的名字然后抓取小说的全部章节,制作成文档。 需要的知识:使用BeautifulSoup或正则解析网页,使用requests下载网页。 搜索小说 直接用小说的站内搜…

【转】最实用的IT类网站及工具大集合

转自:http://www.cnblogs.com/annie00/p/5753507.html 1.聚合数据 大家在开发过程中,可能会用到各种各样的数据,想找一些接口来提供一些数据。比如天气预报查询,火车时刻表查询,彩票查询,身份证查询等等。有…

大型网站架构演变和知识体系

from http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什…

关于动画培养灵感的网站

直接点解图片就能进入对应的国外的网站: 下面这个网站是视频播放的哦,挺好看的。 当然这个英文网站在国内也有翻译的blog:http://www.jianshu.com/p/1858a8733ba3

大型网站技术架构 大纲

本文内容大部分来自《大型网站技术架构》,这本书很值得一看,强烈推荐。网站系统架构层次如下图所示:1.前端架构前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。浏览器优化技术并不是优化…

knewone最新分享购物网站模板

演示效果:http://www.erdangjiade.com/templates/390 效果图片:

DTCMS 网站管理系统

dtcms适合开发一些简单小型网站 开发的过程中遇见了各种问题,下面总结下我遇见的问题 1.遇见提示未开启生成静态功能 在系统设置里面将“伪URL重写”为“生成静态”可以解决 2.在生成静态页面的时候提示生成页面完成,但是右下角却显示失败 这个可能是在新…

oracle em 此网站,Oracle 11g em启动报此网站的安全证书有问题的解决方案

今天配置完Oracle 11gR2 em后,在IE中输入https://kermart:1158/em直接报错,打不开提示:“证书错误,此网站安全证书有问题”,在网上找了好久没有找到解决的方案,其中有人说要卸载win7的windows补丁3KKB26612…

商城模板网站html5手机端_网站建设商城模板设计排版不同,但不可缺少的重要板块都会有 - 企业建站...

有的企业建网站,是为了宣传产品、树立企业形象,此类多为建设企业官方网站;有的企业建网站,销售产品是根本,此类都建设商城网站。建设网站又有两种方法,一类模板建站,一类定制建站。对于网站建设…

list的contains方法为什么不好使_为什么你的网站优化效果不好?

当新手网站管理员优化他们的网站,他们不能总是产生良好的结果。是他们的优化方法使用不好,还是网站本身有问题,比如苏州网站优化,哪里有困难,为什么经常做不好,长期没有排名的网站,优化效果不好…

做网站用什么语言_外贸独立站卖家如何做多语言网站SEO?

在各国经济文化交流的频繁和跨境业务数量增长的背景下,想要实现海外营销,获得更多的关注和收益,外贸卖家们就必须针对目标市场进行网站的多语言优化,针对新的国家或地区进行策略的制定网站内容本地化,仅翻译网站内的文…

如何集成varnish到已有的网站架构

如何集成varnish到已有的网站架构 在我们现有的架构中通常是已经成熟稳定的架构,如何将高性能的缓存服务器部署在已有的环境上呢,同时部署容易,如何始终让用户看到的是最新的内容,即便是缓存命中的状态? 因此&#xff…

activemq 各种版本区别_响应式网站和PC+手机端网站有什么区别?

企业建站普遍会遇到这样一个选择难题:网站选择什么类型?常见的类型分为3种:PC端,PC手机端,响应式。PC端大家都知道,主要的选择难点是后两种有什区别。今天小编就帮大家来分析一下响应式网站和PC手机端网站的…