互联网产品之百万级高并发技术整体架构

高并发是由于移动APP或网站PV(page view)即页面浏览量或点击量大,单台服务器无法承载大量访问所带来的压力,因此会采用服务器集群技术,用N台服务器进行分流,对于每次访问采取负载均衡策略,被分配到不同的服务器来处理请求。

负载均衡种类

一种是通过硬件来实现,常见硬件有F5,NetScaler、Radware和Array等商用的负载均衡器,但是它们是比较昂贵,成本比较高。

另一种是通过软件来实现,常见的软件有LVS、Nginx、Apache等,它们是基于Linux系统并且开源的负载均衡策略。

常用的软件解决方案之一

Keepalived的作用是检测服务器的状态利用其来避免单点故障、LVS(Linux Virtual Server)作为负载均衡和请求分发、Nginx(是一个高性能的HTTP和反向代理服务器)作为LVS的节点负载均衡使用,Tomcat作为web服务器具体处理访问请求,Redis作为缓存数据库,Mysql作为最终存储数据库。

整体架构图

互联网产品之百万级高并发技术整体架构_第1张图片

整理架构图

架构说明

Keepalived:Keepalived是分布式部署系统解决系统高可用的软件,结合LVS(Linux Virtual Server)使用解决单机宕机的问题,达到高可用(HA)并发效果。双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当主服务器故障的时候,备份服务器会马上自动接管并且提供服务,而且切换的时间非常短。

Keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

LVS(Linux Virtual Server):即Linux虚拟服务器,有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR),十种调度算法(rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。

Nginx:是一个很强大的高性能Web和反向代理服务器,通常作为负载均衡服务器。

负载均衡功能归纳:

1:转发请求

2:故障移除

3:恢复添加

Tomcat :是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。

Redis:是一个高性能的key-value数据库(Nosql),在高并时需配置主从同步。在Tomcat集群时可解决实现Session共享,在并发量大时可作为缓存数据库,避免Mysql数据库请求压力。如电商网站搞秒杀促销活动时,数据直接存储到Redis数据库,然后以一定时间规则同步到Mysql数据库中。

Mysql:作为目前世界上使用最广泛的免费数据库,在高并访问时通过主从复制(Master-Slave)的方式来同步数据实现高可用性,通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力,再通过路由 Hash算法实现水平拆分,库表散列的来提升查询速度能力。

注:除了服务器架构级别实现高并发外,应用程序级别设计也很重要。

你可能感兴趣的:(架构设计)