互联网产品之百万级高并发技术整体架构
2017-05-05 11:33
507 查看
高并发是由于移动APP或网站PV(page view)即页面浏览量或点击量大,单台服务器无法承载大量访问所带来的压力,因此会采用服务器集群技术,用N台服务器进行分流,对于每次访问采取负载均衡策略,被分配到不同的服务器来处理请求。
另一种是通过软件来实现,常见的软件有LVS、Nginx、Apache等,它们是基于Linux系统并且开源的负载均衡策略。
整体架构图
整理架构图
架构说明
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算法实现水平拆分,库表散列的来提升查询速度能力。
注:除了服务器架构级别实现高并发外,应用程序级别设计也很重要。
负载均衡种类
一种是通过硬件来实现,常见硬件有F5,NetScaler、Radware和Array等商用的负载均衡器,但是它们是比较昂贵,成本比较高。另一种是通过软件来实现,常见的软件有LVS、Nginx、Apache等,它们是基于Linux系统并且开源的负载均衡策略。
常用的软件解决方案之一
Keepalived的作用是检测服务器的状态利用其来避免单点故障、LVS(Linux Virtual Server)作为负载均衡和请求分发、Nginx(是一个高性能的HTTP和反向代理服务器)作为LVS的节点负载均衡使用,Tomcat作为web服务器具体处理访问请求,Redis作为缓存数据库,Mysql作为最终存储数据库。整体架构图
整理架构图
架构说明
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算法实现水平拆分,库表散列的来提升查询速度能力。
注:除了服务器架构级别实现高并发外,应用程序级别设计也很重要。
相关文章推荐
- 企业级系统架构设计技术与互联网应用技术结合主题一 大规模并发性能问题探讨
- Java互联网架构-京东国美高并发核心技术“秒杀”
- 一例千万级pv高性能高并发网站架构[原创] - 运维进行时 - 互联网运维技术架构
- 互联网高并发架构技术实践
- 互联网高并发架构技术实践
- Java互联网架构-高并发分布式消息中间件技术ActiveMQ事务
- 敏捷开发产品管理系列之八:基于业务设计技术架构(兼谈12306性能问题)
- 淘宝海量数据产品技术架构
- 互联网产品研发管理-技术商人的能力
- 高负载、高并发网站架构知识汇总-大型互联网网站架构
- 注重产品及技术架构的长久发展才是企业生存的最佳之道
- 业务架构、信息架构、技术架构三位一体,互联网营销
- 【杂牌互联网产品观察员的一天】想做技术,从观察开始,从坚持开始,从写技术博客开始!
- 技术 架构 产品
- 敏捷开发产品管理系列之八:基于业务设计技术架构(兼谈12306性能问题)
- [2012-03-12][乐维问答]互联网产品经理需要懂技术吗?懂到什么程度?
- 企业级系统架构设计技术与互联网应用技术结合主题一 - 大规模并发性能问题探讨
- 【12.26上海站技术沙龙】2009互联网技术峰会 激情邀你参与!!话题:高可用网游架构等
- 全球顶级CRM产品的技术架构大揭密 -- SAP等
- 互联网技术架构积累1