阿里P6工程师竟然不知道这三个技术点的区别?马云:我们不养白兔!

当提到分布式、高并发、多线程这3个词的当时,会不会许多人都觉得分布式=高并发=多线程?

阿里P6工程师竟然不知道这三个技术点的区别?马云:我们不养白兔!

小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243 这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!

当面试官问起高并发系统都可以选用哪种方式来处理,或是被问起分布式系统怎样才能处理一致性的问题,是否懵圈?的确,在刚开始触碰的当时,许多人都是将三者搞混,误认为所谓的分布式高并发的系统也是能同时供海量用户访问,而选用多线程方式不也是还可以提供系统的并发能力吗?事实上,他们3个一直相伴而生,但着重点又有差异。

什么叫分布式?

分布式更多的1个基本概念,是以便处理单独物理服务器容量和性能存在的问题而选用的提升方式。该领域需要处理的问题极多,在不同的技术层面上,又包含:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,许多名词如Hadoop、zookeeper、MQ等都跟分布式相关。从核心理念上讲,分布式的建立有两种形式:

水平拓展:当一台设备撑不住流量时,就利用添加机器的方法,将总流量均分到各个服务器上,各个机器可以提供相当的服务;

垂直拆分:前端有多种多样查寻需求时,一台设备撑不住,还可以将不一样的需求分派到不一样的机器上,例如A机器解决余票查询的请求,B机器解决支付的请求。

什么叫高并发?

相对于分布式而言,高并发在处理的问题上面集中化一点,其反应的是同时有多少量:例如在线直播服务,同时有过万人收看。

高并发还可以根据分布式技术去处理,将并发流量分在不一样的物理服务器上。但与此同时,可以有许多别的提升手段:例如采用缓存系统,将全部的,静态内容置于CDN等;还可以采用多线程技术将每台服务器的服务能力放大。

什么是多线程?

多线程就是指从软件或是硬件上保持多个线程并发实行的技术,它更多的是处理CPU调度多条进程的问题,进而让那些进程看起来是一起实行(实际上是更替运作的)。

这几个定义中,多线程处理的问题是最明确的,手段就是较为单一化的,通常遇上的最大问题也是线程安全。在JAVA语言中,需要对JVM内存模型、指令重排等深层次了解,才能写成一份高品质的多线程代码。

总结一下:

分布式是以物理资源的视角去将不一样的机器构成1个整体化对外开放服务,技术性范围特别广且难度系数特别大,拥有这个基础,高并发、高吞吐等系统很易于搭建;

高并发是以业务视角去表述系统的能力,建立高并发的方式可以选用分布式,还可以选用诸如缓存、CDN等,理所当然也包括多线程;

多线程则聚焦于怎么使用编程语言将CPU调度能力最大化。

小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243 这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!

分布式与高并发系统,牵涉到很多的概念和知识点,如果不是系统的学习,很容易会杂糅概念而辨识不清,在面试与现实在工作中都会碰到困难。阿里P6工程师竟然不知道这三个技术点的区别?马云:我们不养白兔!

猜你喜欢

转载自blog.csdn.net/weixin_42784331/article/details/86652133