关于12360网站的架构优化

news/2024/7/9 17:30:47 标签: 优化, 360, 服务器, 集群, 负载均衡, apache

首先 本人在8号去订19号的票. 听说网站从6点开始登录,放票时间8点,10点.  然后5点起来在一家网吧守候着.当6点01分的时候,就登录.结果登不进去.

每隔1分钟登陆一下直到10点就彻底放弃了.

 后来听说有10亿的PV量,嗨嗨

然后在公司登啊登, 同事用登录软件登了进去,下不了单被踢出来了. 还有订到了单,可付款超过45分钟就OVER了 可谓是步步惊心!

 

总得来讲该网站比较简单, 简单易懂! 或许真的碰到春运这个全球难题. 日均10亿PV峰值.

 

看后台使用JSP 估计采用JAVA代码编写的中间应用程序. JAVA WEB一向来都是低性能的代名词.

 

什么 STRUCTE  SPRING HIEBRTATE 只是用来OO意淫的对象. 无法满足高并发,高流量的网站需求.

 

它满足金融的安全需求和稳定需求.

 

好吧  我们用 JSP+JAVABEAN+ORACLE的数据库 做为开发基础.   用TOMCATE APACHE作为中间容器和应用服务器.

数据库做RAC集群

TOMCAT和APACHE也做集群负载均衡.

如果觉得不够还可以加个NGIX服务器

 

来看看页面情况 大部分都是静态页面, 动态页面就是车次和车票量而已.

 

也就是说大部分页面可以内存缓存起来. 用IE涮新页面应该很迅速,无论是网通,铁通,联通,电信,3G都可以.

 

好我们来谈谈登录页面 登录语句很简单 一个查询用户信息表.  在数据我们做个简单的用户信息登录表 就记录些 注册号,密码两个字段. 然后把它缓冲到内存中.

13亿人口,13亿用户,2个字段 占内存不大. 秒杀出来.

 

如果登录后会占大量的SESSION 也就是网页连接对象. 其实进去后,大家干的就是查询工作.然后下订单,然后再支付.

 

这样可以采用漏斗法, 下订单可以采用拿号排队机制.让用户可以看到前面有几个人? 同时看到票的递减数. 其他人就玩查询

这样用户体验就不会那么差. 毕竟能打开网页,毕竟能登录,毕竟能修改信息增加购票人的信息.毕竟可以查询车次. 下单就可以排队等候.

就不会被骂如此狗血

 

比如一天就放几趟车,每车就2千票. 实在太简单了. 两三台机器就可以完成业务处理. 虽然有上万人抢,当都被挡在外面.

页面打开机器

登录机器

信息修改机器

车次查询机器,

拿号订单机器

订单交易机器,

支付机器.

 

 

剩下就是分流用户. 深圳,北京,上海 广州用户 按IP地址把他们分流到不同的机器集群上.

高铁,动车线 是高端客户. 不管在哪里把他们集中在另外个机器集群中.

 

 补充些总体而言就是分流客户量
1 根据接入网 分 电信网络,联通网通,北方网络 三大网络
2 根据客服IP地址分,主要把热点客服流分开. 北京,上海,深圳,广州.反程客流城市.
3 可根据客服高端分,动车,普通客车,临时客车.
4 根据购票流程 分打开主页,登录页面,注册页面,信息修改页面,查询车次页面,订单预定页面,支付页面. 这几个功能可以分在不同的序列中. 每个序列都有页面响应服务器,中间业务服务器,和数据库服务器.
5 最后在各个服务器上增加MEMCACH缓冲
6 每个服务器都做负载均衡集群.
7 支付时间应该是24小时. 并且可以网下支付.比如在售票窗口.
跟电话订票拿到订单号去窗口买票一样.

 

上面不是组合而是层层剥离  把全国客流分成三大网, 按IP地址 分成 4大城市和其他城市, 客户类型分成三大部分. 然后按购买流程分成8个服务器组.

全国客户分成 3*4*3=24部分  10亿PV除以24  每个服务器队列就压力小了.

 

 

 

像这样拆分法  用MYSQL +LINUX+普通PC机+PHP+APACHE 3-5百台普通PC机 摆平

 

 

 


http://www.niftyadmin.cn/n/682993.html

相关文章

ESP32外设入门GPIO

前言 最近开发用到了ESP32,乐鑫已经对接口进行比较深度的封装,但是还是看了下外设的参考手册,摘取了一部分结合自己的理解给记录下来。 如有异议,欢迎指正 概述 ESP32芯片具有34个物理GPIO。每个pad都可用作一个通用IO,或连接内…

ecshop transport.js/run() error:没有权限

ecshop transport.js/run() error:没有权限ECSHOP模板/ecshop开发中心(www.68ecshop.com) / 2014-07-30客户反映网站出现 transport.js/run() error:没有权限,下面ecshop开发中心(www.68ecshop.com)写了教程 ransport.js下的run方法 xhr.open…

ESP32中LED_PWM控制器

背景 ESP32想做个typeC充电时呼吸灯的应用,看了开发手册发现带有个LED PWM控制器,可以无需处理器干预实现硬件的PWM脉宽的自由步进,从而实现呼吸灯渐变的效果,主要参考了官方的资料,把调试的过程记录下来 如有异议&am…

[ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回

[ecshop 支付接口 开发调试] ecshop 需要做一些支付接口,和接口升级,经常需要支付返回 1.经验1 直接建立一个支付页面 /** * ecshop 支付接口开发 测试 * * $Author: yanggg QQ 346767073 $ */ /*** ecshop 支付接口开发 测试* * $Author: yanggg Q…

[ecshop 开发调试] ecshop 2次开发 准备工作

1. data/config.php 修改 最后面加上 /* DEBUG_MODE 有4种模式: 0 disabled debug 1 output error message 2 disabled caching 4 showing debug page 8 logging SQL query */define(DEBUG_MODE, 1); ?>2.bom.php 清除bom 3. mysql 报错 加上debug_print_backtrace 4 ses…

夜行高新园

话说 高新园深夜,高楼大厦山谷中行走着一个人 其腿穿牛仔裤,脚着360运动鞋,上身黑色夹克,腰露出些里面的白色寸衣,白色寸衣领子一层灰漆漆地.挎者V字头的挎包.急行在寒风月黑之夜.在公交站台附近 一群POLICE把他给拦住了 一名警察要求 检查身份证 看看了身份证 说"什么地干…

RESTful 接口实现简明指南

在前后端分离的 Web 应用架构中,前端专注于页面,同时与后端进行数据交互;而后端则专注于提供 API 接口。在这样的结构下,REST 是一个很流行的前后端交互形式的约定。这只是一套约定,并不是某个技术标准,所以…

ubuntu18.04更新源方法

前言 Ubuntu自带默认的软件源指向的服务器是部署在国外的,在国内进行软件下载更新时会非常慢,可以通过更改源地址指向国内的镜像数据源,比如阿里、网易、清华、中科等等 PS:因为今天群里有人在问,故把修改的方法记下来…