高并发是由于移动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作为最终存储数据库。

整体架构图

整理架构图

架构说明

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算法实现水平拆分,库表散列的来提升查询速度能力。

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

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

  1. 9基于linux百万级高并发框架Skynet-王桂林-专题视频课程

    <9>基于linux百万级高并发框架Skynet-830人已学习 课程介绍         全面介绍一款专门为游戏服务所打造的后台框架skynet,Actor模型的剖析与搭建,通用服务模块 ...

  2. 【揭秘】12306是如何抗住几亿日活、百万级高并发的?

    [欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ 每到节假日期间,一二线城市返乡.外出游玩的人们几乎都面临着一个问题:抢火车票! 虽然现在大多数情况下都 ...

  3. 刘志勇:微博短视频百万级高并发架构

    本文来自新浪微博视频平台资深架构师刘志勇在LiveVideoStackCon 2018讲师热身分享,并由LiveVideoStack整理而成.分享中刘志勇从设计及服务可用性方面,详细解析了微博短视频高 ...

  4. OPPO百万级高并发MongoDB集群性能数十倍提升优化实践

    点击蓝色"架构文摘"关注我哟 加个"星标",每天上午 09:25,干货推送! 1. 背景 线上某集群峰值TPS超过100万/秒左右(主要为写流量,读流量很低), ...

  5. kafka是如何做到百万级高并发低迟延的?

    Kafka是高吞吐低延迟的高并发.高性能的消息中间件,在大数据领域有极为广泛的运用.配置良好的Kafka集群甚至可以做到每秒几十万.上百万的超高并发写入.Kafka到底是如何做到这么高的吞吐量和性能的 ...

  6. 你们说说kafka是如何做到百万级高并发低迟延的?

    Kafka是高吞吐低延迟的高并发.高性能的消息中间件,在大数据领域有极为广泛的运用.配置良好的Kafka集群甚至可以做到每秒几十万.上百万的超高并发写入.Kafka到底是如何做到这么高的吞吐量和性能的 ...

  7. 百万用户的网站访问云服务器,大型网站百万级高并发测试–MySpace云测试CloudTest™...

    2009年12月MySpace在新西兰对用户推出了音乐和视频的服务功能,这些新功能包括能够观看音乐录像,艺术家的视频搜索,创建收藏夹列表,等等.因为MySpace网站在任何国家每日的访问量是巨大的,这 ...

  8. MySQL百万级高并发网站优化

    为什么80%的码农都做不了架构师?>>>    一网站以下简称A站,这A站在年后流量猛增从一天的七八十万猛跑到了好几百万的IP,一天下来接近一千万的PV让整个服务器在高压下超负荷的工 ...

  9. 高并发服务器开源项目,百万级高并发WebRTC流媒体服务器设计与开发(示例代码)...

    第1章 课程导学与准备工作 本章主要介绍为何要学习WebRTC流媒体服务器开发,以及本门课能为我们带来哪些收获.之后会为大家介绍本课程内容具体安排,最后给出如何学好这门课程的一些学习建议.希望大家都能 ...

最新文章

  1. 如何将C# 7类库升级到C# 8?使用可空引用类型
  2. 统计学习方法第十九章作业:马尔可夫链蒙特卡罗法、吉布斯抽样算法(书上题目) 代码实现
  3. SAP CRM中间件Object出现wait状态的原因调试
  4. HDFS读写文件实例与解析
  5. 分享SharpZipLip使用代码
  6. python codec_深入理解Python特性
  7. 【报告分享】2021上半年短视频及电商生态研究报告.pdf(附下载链接)
  8. ofo 被爆仍在自动续费;苹果加紧培养新一代接班人;谷歌推出 Android 11 Go | 极客头条...
  9. BZOJ3780 : 数字统计
  10. 团队开发时该如何同步数据库变更到本地
  11. 强化学习(reinforcement learning)教程(后面是翻译)
  12. 10 个学习iOS开发的最佳网站(转)
  13. 关闭colorbox刷新页面
  14. windows下安装you-get的简要记录
  15. Spring Boot 注解原理,自动装配原理,图文并茂,万字长文!
  16. 【服务器数据恢复】服务器断电导致RAID报错的数据恢复案例
  17. 8/14 二维高斯函数
  18. 用JS描述的数据结构及算法表示——栈和队列(基础版)
  19. C++Test基于CCS的单元测试
  20. 『每周译Go』GitHub 为 Go 社区带来供应链安全功能

热门文章

  1. c++byte数组和文件的相互转换_5分钟系列之Java类文件结构(三、字节码指令简介)...
  2. linux中启动不了服务,Linux系统xinetd服务启动不了
  3. mac学python_新手小白学Python必备编程利器Pycharm快捷键大全(Win+Mac)
  4. oracle未获得监听器,无监听文件listener.ora的动态监听小例试验
  5. cv岗工作做什么_只会python能做什么工作
  6. java ajax json 乱码_java+ajax加载中文json串后出现乱码问题的解决办法
  7. ubuntu中mysql怎么退出命令_Ubuntu中mysql启动和关闭
  8. 企业版mysql怎么装_RedHat企业版5.5下Mysql的安装与配置
  9. hystrix 页面_SpringCloud微服务架构篇5:微服务熔断机制-Hystrix
  10. c语言实现输入输出功能需要调用库函数,C语言学习笔记(二)