你们知道为什么D音、K手,这些平台可以同时支撑上百万人同时观看直播还不丢数据吗?
直播带货秒杀商品+海量的弹幕数据,平台是怎么抗住的?为什么很少听说这些平台出错?
因为他们的程序做到了高并发、高性能、高可用,话说回来你对程序员的三高了解吗?
一、高并发
高并发是现在互联网分布式框架设计必须要考虑的因素之一,它是可以保证系统能被同时并行处理很多请求,对于高并发来说,它的指标有:
响应时间:系统对进来的请求反应的时间,比如你打开一个页面需要1秒,那么这1秒就是响应时间。
吞吐量:吞吐量是指每秒能处理多少请求数量,好比你吃饭,每秒能吃下多少颗米饭。
秒查询率:秒查询率是指每秒响应请求数,和吞吐量差不多。
并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
二、高性能
什么是高性能呢?高性能是指程序处理速度非常快,所占内存少,cpu占用率低。高性能的指标经常和高并发的指标紧密相关,想要提高性能,那么就要提高系统发并发能力,两者互相捆绑在一起。
应用性能优化的时候,对于计算密集型和IO密集型还是有很大差别,需要分开来考虑。还有可以增加服务器的数量,内存,IO等参数提升系统的并发能力和性能,但不要浪费资源,要考虑硬件的使用率最高才能发挥到极致。
怎么样提高性能呢?
1、避免因为IO阻塞让CPU闲置,导致CPU的浪费
2、避免多线程间增加锁来保证同步,导致并行系统串行化
3、避免创建、销毁、维护太多进程、线程,导致操作系统浪费资源在调度上
三、高可用
高可用通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。
高可用注意如果使用单机,一旦挂机将导致服务不可用,可以使用集群来代替单机,一台服务器挂了,还有其他后备服务器能够顶上,或者使用分布式部署项。
比如现在redis的高可用的集群方案有: Redis单副本,Redis多副本(主从),Redis Sentinel(哨兵),Redis Cluster,Redis自研。
你对程序员的三高了解多少呢,你知道“三高”的系统怎么开发吗?
好了,回归主
听完这次直播课程
你会有哪些收获呢
程序员面试技巧、避坑经验
突破现阶段技术瓶颈
优化简历增加面试邀约次数
面试中如何搞定技术面、HR面
...