图片-稻子网
图片-稻子网
图片-稻子网
图片-稻子网

高并发服务器选择-12306 大家说说建立高并发网站的一些建议

【IT168评论】2012年春节前夕,火车票可以在线购买的消息让人兴奋不已。本以为不用半夜醒来排队等,结果很快就骂声一片,光是登录过程就需要半个小时。时间更长,更不用说买票了。据不完全统计,7天内12306位网站访问者占全球网民0.902%,日点击量高达10亿;系统无法支持如此大量的访问并崩溃了。

人脸工程?设备问题?糟糕的架构?问题继续。为此,IT168特地采访了《互联网运营智慧》作者田毅,请他为我们谈谈12306票务网站和高频高并发网站。故事。

在您看来,12306预订网站的特点和挑战是什么?

从12306的表现来看,可以说是可用性严重不足。所谓日均PV达到10亿,也得益于用户的持续访问和刷新。实际用户数远小于这个。数字。我们知道对于互联网来说,阅读一般大于写作,也就是说主要的操作还是查询,比如12306。很多人可能在查同一张票,比如北京到广州,时间和车次基本相同。而且因为不能选座位,唯一变化的就是座位数,所以可以查询时间信息,一趟车次。您可以缓存这些信息,以便下一个人访问时可以直接从缓存中检索它们。访问速度将大大提高,而且同一个方向的人数自然会减少。在网上计算时,这个数字会比较大。

另外,从技术上来说,北京去哪里,路段是固定的,购票主要集中在几个路段。在数据库中可以使用分区技术。不同的部分写火车的不同部分。这种方式的数据量也会少很多,从而提高网站的可用性。

国内的大型网站还有淘宝、京东、新浪等,您觉得12306和淘宝、京东的访问方式有哪些异同?

图片[1]-高并发服务器选择-12306 大家说说建立高并发网站的一些建议-稻子网

12306和淘宝、京东的接入方式基本一致。它们都是查询、交互、下单等;不同的是淘宝和新浪都有一点点积累。12306没有这个积累过程高并发服务器选择,在这个过程中对用户也没有太多的考虑。体验、易用性、可靠性等。从性能上看,12306购票过程中排队的队列很多,比如登录队列、查询队列等,这里我们可以换一种方式,比如公示购票去哪儿了在线的。打听的人会少一些,也没有必要全部宣传,只宣传一些最受欢迎的列车。此外,还可以使用区域方法。比如上海局可以独立,北京局可以独立。这个压力会减轻很多,因为如果人在上海,基本上都是从上海出发,而不是从北京买票。可以实现本地访问,从而减轻很多压力。

淘宝双十一期间,天猫也出现了宕机,京东也出现了宕机。您认为这些宕机事件与12306网站崩溃的异同点是什么?

淘宝双十一CDN达到800GB左右,双12CDN达到900GB。不过由于淘宝的系统架构非常好,加上运维人员这么多年的积累和丰富的经验,宕机的情况很少,而京东的则是架构有问题。淘宝和京东是技术驱动,另一个是商业驱动。淘宝技术做的不错,顺便卖点东西。京东卖东西,顺便卖东西,和12306不太一样。属于成果工程。先拿出来。至于有没有用,我无法评价,因为它没有开放。

您认为目前的12306订票网站在哪些方面可能存在问题?

图片[2]-高并发服务器选择-12306 大家说说建立高并发网站的一些建议-稻子网

基于现在的架构,把带宽从400MB增加到基本没用,就像车子跑不快一样,换个轮子也无济于事,其他方面大同小异,比如全网CDN加速的使用。我们看到12306的网站很简单,基本没有图片,数据是动态的。这样,每一步都是操作数据库,使用CDN。不仅浪费钱,而且用户体验也不好。

一个整体的架构不是各个部分的堆叠。需要优化架构,在用户体验上下功夫。其中,可以使用大量的缓存技术,比如缓存查询,从而加快访问速度,增加流量。例如,高速公路上有四个车道。如果安装了收费站,收费很慢,你可以计算出一个小时可以通过多少辆车。如果没有收费站,可以通多少辆车。不用说,道理和12306一样,乘客买票就走。如果你没有票,你会离开。不会有无限的页面刷新。

搭建高并发网站需要注意什么

大型高并发高性能网站架构有哪些注意事项?为了实现高并发,可以从哪些技术手段入手?您个人有什么更好的建议?

图片[3]-高并发服务器选择-12306 大家说说建立高并发网站的一些建议-稻子网

如今,数以百万计的PV已不再被视为高并发网站。必须仔细考虑设备、技术和应用程序之间的逻辑关系。这些技术包括操作系统、Java、缓存、应用程序、数据库和分发。技术、负载均衡技术等等。

其实一个高频高并发网站的架构可以想象成一个漏斗,口大,漏的越低漏的越小,前端不断的接收大量的请求,然后通过合理使用负载均衡、CDN缓存、数据库缓存。过滤,最终到达数据库的数量也在控制范围内。

这里有一些技术建议:1.前端负载均衡技术,2.CDN的缓存技术应用,第一人已经访问过,第二人可以直接访问,就近访问这样,不不仅访问速度快,而且成本也会降低。3. 采用分布式系统。无论设备多么强大,都有系统限制。可扩展分布式系统,如游戏后台服务器。一台服务器可以支持2000个用户,所以增加一个处理器可能只能增加100-200,但是增加一台服务器可以增加2000个用户。此外,还使用了多个数据库服务器。经常上网阅读。读取时 从多个数据库服务器读取速度更快。写的时候只有一个数据库要写。这确保了数据的一致性。此外,数据库也可以使用缓存技术。除了数据库本身的分区技术等,这些都可以提高可用性。

如果流量大,可以考虑拆分。例如,一个门户网站有很多频道,在数量一定的情况下可以放在一起。当其中一个通道的流量特别大的时候,可以拆分其中一个,让这个通道单独在一个环境中,前端完全没有变化,但是后端已经不在那个服务器上了。

图片[4]-高并发服务器选择-12306 大家说说建立高并发网站的一些建议-稻子网

部署大规模高并发高性能网站架构时需要注意哪些问题?有哪些挑战?

和12306一样,春节买票的时候,要准备很多人手各方面的资源。然而,如何处理这些资源,如何平衡它们,需要仔细思考。目前做起来不容易,喜欢淘宝的可以继续。12306号是不允许的。平时坐火车的人很多。因此,在这个问题上必须考虑投入产出比。目前还没有很好的解决方案。

很多网友提到使用开源技术搭建大型高并发网站架构。开源技术在这个领域有什么优势吗?

完全可以考虑使用开源技术。大多数互联网公司都是开源的。其实,开源不仅仅是技术本身,更是一种思维。每个人都愿意交流。优点和省钱是一方面,还有问题,甚至你可以写信给作者,有人会帮你解决的。而且使用商业软件的公司相对封闭,遇到问题也不愿意沟通,以至于大家都在猜测。

图片[5]-高并发服务器选择-12306 大家说说建立高并发网站的一些建议-稻子网

有人建议使用云计算平台(类似)来搭建这样的网站,以提高资源利用率,节约成本。你怎么认为?

量大的时候用云服务商提供的服务是不划算的,因为带宽、cpu等都是要收费的,增加了利用率,而且成本不一定节省,不可控。对于小型创业公司,可以考虑。使用云计算平台,但12306可以自己搭建云环境。

有网友建议使用NoSQL等技术来解决此类问题,但也有反对者声称NoSQL技术还不是很成熟,在实现数据一致性方面存在问题。你怎么认为?

其实是可以用的,但是要根据不同的应用环境合理应用。它主要用作数据分析和搜索引擎。在分析用户行为时可以考虑。NoSQL是一种简化的SQL,作为缓存技术使用,但是要配合SQL使用,目前开发也很成熟,数据库一致性没有问题。

您认为虚拟化(不限于服务器虚拟化,还包括网络虚拟化等)在此类大型高并发网站建设中能起到什么作用?

它当然有效高并发服务器选择,但并不意味着所有应用程序都适合虚拟化。比如IO密集型和计算密集型的不能虚拟化,但是虚拟化可以像前端一样使用,因为它本身就是用来接收请求的。, 虚拟化后,接收请求的数量可以大大增加,但是数据库服务器无法虚拟化,因为本身计算量大,磁盘读写需求大,虚拟化后可用性会大大降低。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片