PHP 秒杀系统简介与环境准备
秒杀系统特点
技术分析
系统环境搭建
技术选型分析
1、基础服务
-
Linux + Nginx + PHP + MySQL + Redis
-
选择
Linux
而不是 Windows:
免费、开源
,黑盒的东西相对少。
-
选择
Nginx
而不是 Apache :出于性能考虑,首先是网络的处理 Nginx 能够突破
1 万个,10 万个甚至 100 万个链接
,能够让很多位用户的请求进来而
不宕机
。而 Apache 的用户请求数量为 100 个,200 个,或者超过 500 个和 1000 个的时候,就很不稳定甚至会出现宕机的情况。
-
选择
Redis
缓存而不是 Memcached 缓存:是因为 Redis 的
数据结构相对比较多
,Memcached 比较单一。
2、CDN(Content distribution network:内容分发网络),智能 DNS
-
选择原因:CDN 可以实现
分布式缓存
,并且支持全国
多节点
。
-
CDN 的基本组成:由源站及其下的多个节点组成。将这些节点的 IP 存放到源站的列表里,然后再分配到全国各地 CDN 服务的缓存服务器的代码配置文件里。因为
只有源站会生成内容
,而所有的
节点只能缓存内容
不能生成内容。
-
CDN 的工作原理:用户发起一个请求,首先会先找到最近的一个 CDN 服务器,这个服务器会优先从本地的缓存中获取内容,如果本地没有用户需要的内容,则会先从源站获取内容,接着本地服务器缓存起来,然后再发给用户。
-
-
智能 DNS 原理:可以在后台配置很多个 IP,DNS 有自己的一套系统可以找到对应 IP 的地理位置以及其运营商的信息。
-
DNS 工作原理:首先用户请求 DNS 解析时,DNS 会拿到用户的 IP 信息,接着会分析出该用户处于哪一个地区,属于哪一种网络类型,最后再匹配一个离用户最近的网络地域的服务器。
-
智能 DNS 的作用:分析
用户
的 IP,分析
网络节点
服务器的 IP,然后
智能对照
,能够给用户分配到最适合的网络服务。
3、负载均衡 LVS 和大型 Web 服务集群
-
选用 LVS:因为 LVS 是运行在网络层的负载均衡服务,所以在处理
网络连接
方面是比较
高效稳定
的,并且 LVS 支持
更大规模的网络集群
和更大量的
网络请求
。
-
LVS 的好处:可以
屏蔽
用户对服务器的
透明性
,可以让后台的服务器更好的实现动态调整(宕机,负载过高)。
-
工作原理:用户正常访问服务(访问的是 LVS 服务),接着通过 LVS 服务,把请求转发到 Web 服务(有多种转发方式,例:轮巡)。如果不希望请求比较零散的话,可以使用同一个 IP 命名到同一个服务器上去做处理。
开发环境准备
-
开发工具:Eclipse for PHP Developers、PHPStorm、EditPlus(免费、简单、高效)
-
部署开发环境:XAMPP(windows 安装包)、MACOS brew 安装工具(Mac)、Linux yum(linux)
-
标签: