衡量一个接口是否能够支撑高并发,我们最先想到的就是他的QPS是多少,影响QPS大小的关键因素是你的系统是否支持分布式、高并发,当提起这几三个词的时候,是不是很多人都认为分布式=高并发=多线程?
01
什么是分布式?
分布式更多的一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。
该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,一些名词如Hadoop、zookeeper、MQ等都跟分布式有关。
从理念上讲,分布式的实现有两种形式:
水平扩展:当一台机器扛不住流量时,就通过添加机器的方式,将流量平分到所有服务器上,所有机器都可以提供相当的服务;
垂直拆分:前端有多种查询需求时,一台机器扛不住,可以将不同的需求分发到不同的机器上,比如A机器处理余票查询的请求,B机器处理支付的请求。
02
什么是高并发?
相对于分布式来讲,高并发在解决的问题上会集中一些,其反应的是同时有多少量:比如在线直播服务,同时有上万人观看。
高并发可以通过分布式技术去解决,将并发流量分到不同的物理服务器上。
但除此之外,还可以有很多其他优化手段:比如使用缓存系统,将所有的,静态内容放到CDN等;还可以使用多线程技术将一台服务器的服务能力最大化。
03
什么是多线程?
多线程是指从软件或者硬件上实现多个线程并发执行的技术,它更多的是解决CPU调度多个进程的问题,从而让这些进程看上去是同时执行(实际是交替运行的)。
这几个概念中,多线程解决的问题是最明确的,手段也是比较单一的,基本上遇到的最大问题就是线程安全。
在JAVA语言中,需要对JVM内存模型、指令重排等深入了解,才能写出一份高质量的多线程代码。
总结一下:
当然!仅仅有思维导图还不够,这里还给大家准备了免费的Java源码与实战视频直播课程,系统+实战,助力全面提升!
No.1
《Java高级进阶系列直播》
10月14日 20:00
不学SpringBoot原理,终究是个CURDer!
10月15日 20:00
面对上亿数据量,网易用啥技术?
10月16日 20:00
Spring注解从原理剖析到组件封装
10月17日 20:00
数据大并发高!告诉你网易数据库架构怎么玩优化
10月18日 20:00
互联网面试必问—线程池原理与API精析
10月19日 20:00
玩转redis高性能分布式锁
10月20日 20:00
互联网面试必问—NIO详解
No.2
网易Java进阶资料包