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

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

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

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

什么是分布式?

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

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

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

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

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

什么是高并发?

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

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

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

什么是多线程?

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

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

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

总结一下:

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

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

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

SpringCloud 02_什么是分布式、多线程、高并发?(浅析)相关推荐

  1. 你分得清分布式、高并发与多线程吗?

    当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程? 当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼? 确实,在一开始接触的时候,不 ...

  2. 分布式、高并发、多线程,到底有什么区别?

    当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程? 当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼? 确实,在一开始接触的时候,不 ...

  3. 分布式机器学习_京东出来的java工程师,竟然不知道分布式、高并发、多线程的区别?...

    当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程? 当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼? 确实,在一开始接触的时候,不 ...

  4. SpringBoot实战实现分布式锁一之重现多线程高并发场景

    实战前言:上篇博文我总体介绍了我这套视频课程:"SpringBoot实战实现分布式锁" 总体涉及的内容,从本篇文章开始,我将开始介绍其中涉及到的相关知识要点,感兴趣的小伙伴可以关注 ...

  5. 多线程高并发,docker容器启动后修改或添加端口

    这种方式的优点是不会影响统一宿主机上的其他容器,缺点是管理起来显得比较乱.方法三:修改文件端口,重启docker服务---------------------### 1.停止docker(`一定`要先 ...

  6. 多线程高并发编程MySQL数据库处理

    本文作者:陈进坚 个人博客:https://jian1098.github.io CSDN博客:https://blog.csdn.net/c_jian 简书:https://www.jianshu. ...

  7. 多线程高并发 底层锁机制与优化的最佳实践——各种锁的分类 || synchronized 关键字 倒底锁的是什么东西?|| CAS与ABA问题||锁优化||轻量级锁一定比重量级锁的性能高吗

    多线程高并发 底层锁机制与优化的最佳实践 各种锁的分类 加上synchronized 关键字,共享资源就不会出错 synchronized 关键字 倒底锁的是什么东西? synchronized 锁的 ...

  8. 【多线程高并发】深入理解JMM产生的三大问题【原子性、可见性、有序性】

    [多线程&高并发]深入浅出原子性 https://blog.csdn.net/Kevinnsm/article/details/121681785?spm=1001.2014.3001.550 ...

  9. 【多线程高并发】深入浅出可见性

    [多线程&高并发]深入浅出原子性 https://blog.csdn.net/Kevinnsm/article/details/121681785?spm=1001.2014.3001.550 ...

最新文章

  1. swift -charts框架雷达图
  2. mysql索引设计策略_MySQL索引设计一些策略
  3. android 4.0(ICS)源码下载方法
  4. jQuery hash
  5. 计算机网络:三层ISP结构
  6. zoj 3204 Connect them kruskal
  7. 如何通过7个Logback调整立即改善Java日志记录
  8. 计算机一级资料书推荐,推荐版 全国计算机一级考试试题【史上最全面的资料,不看你就亏!】.doc...
  9. GTK显示GIF、GTK动画(图片连续播放)
  10. quartz定时任务中常用的cron表达式
  11. REDGATE又一好用的脚本工具ScriptsManager1.3
  12. word 2007导出pdf格式(含下载地址)
  13. 项目管理十大知识领域之项目成本管理
  14. mysql数据库地址 名称_数据库地址和名称是什么?怎么知道自己地址和名称?
  15. 【软件测试】公司招个测试员,我又面试了100多人,结局......
  16. 如何批量新建文件夹,批量新建文件夹并命名
  17. 仿人人客户端向右滑出式菜单
  18. Pygame详解(十七):joystick 模块
  19. 认证、授权、鉴权和权限控制
  20. 人工智能--自动编码器

热门文章

  1. 2021牛客多校7 - xay loves trees(dfs序+主席树-标记永久化)
  2. CodeForces - 1538G Gift Set(二分)
  3. 2019ICPC(沈阳) (回文自动机+Palindrome Series优化dp)
  4. CodeForces - 1331E Jordan Smiley(图形转换)
  5. CodeForces - 1325D Ehab the Xorcist(构造+异或)
  6. socket穿透代理代码(C++版)
  7. frida hook java层常用模板
  8. 手写实现RPC框架基础功能
  9. Spring循环依赖的三种方式,你都清楚吗?
  10. Java代码优化:使用构造函数和使用一个setter的效率差别