登陆

用户

上一篇:分享一些好用的 Chrome 插件! 下一篇:一张图,告诉你
在线教育如何做好用户增长

搞懂分 布式与高并发和多线程,看这篇就够了

来源:荣华软件   2019-04-19 13:44

当提起 这三个词的时候,是不是 很多人都认为分布式=高并发=多线程?

当面试 官问到高并发系统可以采用哪些手段来解决,或者被 问到分布式系统如何解决一致性的问题,是不是一脸懵逼?

确实,在一开始接触的时候,不少人 都会将三者混淆,误以为 所谓的分布式高并发的系统就是能同时供海量用户访问,而采用 多线程手段不就是可以提供系统的并发能力吗?

实际上,他们三 个总是相伴而生,但侧重点又有不同。



什么是分布式?


分布式 更多的一个概念,是为了 解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。

该领域 需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,一些名词如Hadoop、zookeeper、MQ等都跟分布式有关。

从理念上讲,分布式 的实现有两种形式:

水平扩展:当一台 机器扛不住流量时,就通过 添加机器的方式,将流量 平分到所有服务器上,所有机 器都可以提供相当的服务;

垂直拆分:前端有 多种查询需求时,一台机器扛不住,可以将 不同的需求分发到不同的机器上,比如A机器处 理余票查询的请求,B机器处理支付的请求。



什么是高并发?


相对于分布式来讲,高并发 在解决的问题上会集中一些,其反应 的是同时有多少量:比如在线直播服务,同时有上万人观看。

高并发 可以通过分布式技术去解决,将并发 流量分到不同的物理服务器上。

但除此之外,还可以 有很多其他优化手段:比如使用缓存系统,将所有的,静态内容放到CDN等;还可以 使用多线程技术将一台服务器的服务能力最大化。



什么是多线程?


多线程 是指从软件或者硬件上实现多个线程并发执行的技术,它更多的是解决CPU调度多个进程的问题,从而让 这些进程看上去是同时执行(实际是交替运行的)。

这几个概念中,多线程 解决的问题是最明确的,手段也是比较单一的,基本上 遇到的最大问题就是线程安全。

在JAVA语言中,需要对JVM内存模型、指令重排等深入了解,才能写 出一份高质量的多线程代码。

总结一下:

●分布式 是从物理资源的角度去将不同的机器组成一个整体对外服务,技术范 围非常广且难度非常大,有了这个基础,高并发、高吞吐 等系统很容易构建;

● 高并发 是从业务角度去描述系统的能力,实现高 并发的手段可以采用分布式,也可以采用诸如缓存、CDN等,当然也包括多线程;

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


分布式与高并发系统,涉及到 大量的概念和知识点,如果没有系统的学习,很容易 会杂糅概念而辨识不清,在面试 与实际工作中都会遇到困难。

  

       随时随 地了解更多最新资讯,关注荣华软件官方公众号:ronghuasoft



0条回答

登陆后可回复

  1. 登陆
  2. 注册
服务热线

400-692-8081

( 周一至周五 09:00-17:00 )

联系我们

名称:烟台荣 华软件科技有限公司

地址:烟台市高新区航天路101号C栋5楼516

座机:0535-3458081

邮箱:001@

Q Q:327195471

Copyright@2018 烟台荣 华软件科技有限公司 版权所有 鲁ICP备14003838号-1

友情链接:    七天彩票网站   大象彩票登入   万人彩票网站   V8彩票app二维码   V8彩票如何提现