网络直播开发过程中非常重要的一环
相信大家对高并发这个词并不陌生,现在有很多家科技公司在进行人才招聘时都会问到关于高并发的问题。其实高并发通常指通过设计保证系统能够同时并行处理很多请求,是网络直播开发过程中关于系统架构必须考虑的因素之一。所以,在网络直播开发过程中,关于高并发的问题也是开发者们必须重视的一点。
1.怎样提升系统的并发能力
要想提高直播系统的并发能力,主要可以分为两种:垂直扩展与水平扩展。
(1)垂直扩展
即提升单机处理能力,垂直扩展的方式又分为两种。
增强单机硬件性能,比如增加CPU核数,扩充硬盘容量和系统内存。
提升单机架构性能,比如使用Cache来减少IO次数,使用异步来增加单服务吞吐量。
不足的是,单机性能总是有极限的,所以大部分高并发的解决方案还是会选用水平扩展,也就是我们下面要提到的。
(2)水平扩展
即只要增加服务器数量,就能线性扩充系统性能。水平扩展对于系统架构设计是有一定的要求的,关于如何在架构各层进行可水平扩展的设计,在此就不多做赘述了。
2.常见的分层架构
(1)客户端层(2)反向代理层(3)站点应用层(4)服务层(5)数据-缓存层(6)数据-数据库层
3.水平扩展在各分层中的实践
(1)反向代理层
反向代理层的水平扩展,是通过“DNS轮询”实现的,每次DNS解析请求来访问dns-server,会轮询返回这些ip。当nginx遭遇瓶颈时,只要增加服务器数量,新增nginx服务的部署,增加一个外网ip,就能扩展反向代理层的性能,做到理论上的无限高并发。
(2)站点层
是通过“nginx”实现的,通过修改nginx.conf,可以设置多个web后端。当web后端遭遇瓶颈时,只要增加服务器数量,新增web服务的部署,在nginx配置中配置上新的web后端,就能扩展站点层的性能,做到理论上的无限高并发。
(3)服务层
服务层的水平扩展,是通过“服务连接池”实现的。当服务遭遇瓶颈时,只要增加服务器数量,新增服务部署,在RPC-client处建立新的下游服务连接,就能扩展服务层性能,做到理论上的无限高并发。
(4)数据层
在数据量很大的情况下,数据层(缓存,数据库)涉及数据的水平扩展,将原本存储在一台服务器上的数据(缓存,数据库)水平拆分到不同服务器上去,以达到扩充系统性能的目的。
高并发是网络直播开发过程中经常遇到的问题,但并不能对其掉以轻心。对于直播行业来说,解决高并发也是核实开发实力的标准之一,再加上对实时效果要求甚严的直播应用场景,高并发可以说是“刻不容缓”的。
本文声明原创,转载请注明出处。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
解密阿里中间件女程序员以夕、钰佩代码诗!
云栖社区为此推出“三七”女生节特别分享,16位才华横溢的阿里女生们同一时间分享了自己写的代码诗和她们推荐的书单。 你知道以夕女程序员代码的释义吗?快来解密吧!评论回复哦! void doComplain(String BB){ if(isSuggestion(BB)){ System.out.println("Useful suggestion:"+BB); }else{ System.out.println("Nonsense"); } } 你知道钰佩女程序员代码的释义吗?快来解密吧!评论回复哦! def standardCode(): if getLinesCountOfComments() == 0: print("Cry") else: print("Happy") 3月9日在博文中公布谜底哦~ 资料推荐:2018年 中间件 干货文章大盘点! 2018年已过,我们迎来了新的一年,在机遇与挑战同在的环境下,我们更应勤于学习。为了方便大家学习,小编为大家盘点了2018年中间件云栖号最火的干货文章分享给大家,让我们在新的一年里共同学习和成长! 阿里中间件团队 云栖号简介: 中间件(m...
- 下一篇
3月4日云栖精选夜读 | 2019阿里云开年Hi购季大促主会场全攻略!
2019阿里云云上采购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段、3月04日-3月16日的新购满返+5折抢购阶段、3月16日-3月31日的续费抽豪礼+5折抢购阶段。 热点热议 2019阿里云开年Hi购季大促主会场全攻略! 作者:阿里云活动小秘书 威胁快报|Nexus Repository Manager 3新漏洞已被用于挖矿木马传播,建议用户尽快修复 作者:云安全专家 【阿里内部应用】基于Blink构建亲听项目以及全链路debug项目实时响应能力 作者:付空发表在:阿里云实时计算 知识整理 javascript原生代码实现页面查找功能 作者:hellowan123 深入解读MySQL8.0 新特性 :Crash Safe DDL 作者:优惠码领取 Python 技术百问 作者:python小能手发表在:python技术进阶 【Spring Boot】使用JDBC 获取相关的数据 作者:优惠码优惠 MySQL 中 SQL 优化常用的 30 种方法 作者:皇侯爷 美文回顾 2018年 云安全 干货文章大盘点! 作者:技术...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16