如何分清分布式、高并发与多线程

2023-05-16

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

 

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

 

确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同。

 

什么是分布式?

 

 

分布式更多的一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。该领域需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,一些名词如Hadoop、zookeeper、MQ等都跟分布式有关。从理念上讲,分布式的实现有两种形式:

 

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

 

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

 

 

什么是高并发?

 

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

 

高并发可以通过分布式技术去解决,将并发流量分不到不同的物理服务器上。但除此之外,还可以有很多其他优化手段:比如使用缓存系统,将所有的,静态内容放到CDN等;还可以使用多线程技术将一台服务器的服务能力最大化。

640?wx_fmt=jpeg

 

 

什么是多线程?

 

 

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

 

这几个概念中,多线程解决的问题是最明确的,手段也是比较单一的,基本上遇到的最大问题就是线程安全。在JAVA语言中,需要对JVM内存模型、指令重排等深入了解,才能写出一份高质量的多线程代码。

 

总结一下:

 

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

 

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

 

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何分清分布式、高并发与多线程 的相关文章

  • openjdk下载与安装

    openjdk下载与安装 官方网站和文档参考 http openjdk java net install 安装说明 http jdk java net 11 openjdk下载地址
  • DirectUI简介

    DirectUI界面库 取名自微软的一个窗口类名 DirectUIHWND xff0c 意为Paint on parent dc directly 即子窗口不以窗口句柄的形式创建 xff0c 只是逻辑上的窗口 xff0c 绘制在父窗口之上
  • 机器学习 之 Haar特征

    Haar特征 Haar特征原理综述 Haar特征是一种反映图像的灰度变化的 xff0c 像素分模块求差值的一种特征 它分为三类 xff1a 边缘特征 线性特征 中心特征和对角线特征 用黑白两种矩形框组合成特征模板 xff0c 在特征模板内用
  • Linux下将c++转换为so文件并利用python调用

    C 43 43 转so文件 这里以简单的加法为例 xff0c 代码如下 xff0c add传入两个int的参数 xff0c 完成加法 主函数main调用add xff0c return结果 这里需要注意的点在于 xff0c 不能忘记将函数添
  • Oracle的rollup、cube、grouping sets函数

    Oracle的rollup cube grouping sets函数 Oracle的group by除了基本用法以外 xff0c 还有3种扩展用法 xff0c 分别是rollup cube grouping sets 1 rollup 假设
  • 学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等

    跳转指令分三类 一 无条件跳转 JMP 二 根据 CX ECX 寄存器的值跳转 JCXZ CX 为 0 则跳转 JECXZ ECX 为 0 则跳转 三 根据 EFLAGS 寄存器的标志位跳转 这个太多了 根据标志位跳转的指令 JE 等于则跳
  • 中标麒麟yum源的问题以及 mips64el.rpm和.noarch.rpm 不同 openjdk1.8安装

    1 一开始发现yum源地址不对 xff0c 访问不了 xff0c 进行了修改 ns7 adv os name 61 NeoKylin Linux Advanced Server 7 Os baseurl 61 http download c
  • 多任务学习(Multi-Task Learning, MTL)

    目录 显示 1 背景2 什么是多任务学习 xff1f 3 多任务学习如何发挥作用 xff1f 3 1 提高泛化能力的潜在原因3 2 多任务学习机制3 3 后向传播多任务学习如何发现任务是相关的4 多任务学习可被广泛应用 xff1f 4 1
  • Zhong__一文通透Casbin

    时间 xff1a 2021 12 06 环境 xff1a Windows 目的 xff1a Casbin简介与使用 希望对大家有帮助 说明 xff1a 以官方文档为基础来讲解与拓展详解 xff0c 并最终帮助大家在项目中使用 xff01 本
  • Linux多线程调度策略

    转自 xff1a http blog csdn net byperseverance article details 44522731 Linux线程的调度策略分为3个 xff1a SCHED OTHER xff0c SCHED FIFO
  • HDFS操作语句

    HDFS操作语句 本地交互 上传重命名 xff1a hdfs dfs put xx csv srv bigdata xxxx csv 上传 xff1a hdfs dfs put xx csv srv bigdata 强制上传 xff1a h
  • 【ubuntu】Ubuntu 各版本代号简介

    一 版本及代号说明 Ubuntu中 xff0c 每个版本都有一个更为特色的名字 xff0c 这个名字由一个形容词和一个动物名称组成 xff0c 并且 xff0c 形容词和名词的首字母都是一致的 Ubuntu版本的命名规则是根据正式版发布的年
  • 一行代码加速你的Pandas数据探索分析

    本文3分钟 xff0c 大幅提升分析数据效率 我们知道 xff0c pandas库为EDA提供了许多非常有用的功能 但是 xff0c 在能够应用大多数功能之前 xff0c 通常必须先从更通用的功能开始 xff0c 例如df describe
  • 无需虚拟机或双系统!Windows下愉快地使用Linux子系统

    文章目录 说明一 启用 适用于Linux的Windows子系统 WSL 二 启用开发人员模式三 下载linux安装包相关深入学习Ubuntu子系统的资料参考资料 本文阅读3分钟 xff0c 你将获得如下方案 xff0c 在轻量使用场景下 x
  • 解决GitHub的raw.githubusercontent.com无法连接问题

    问题描述 xff1a Ubuntu下连接raw githubusercontent com失败 wget https raw githubusercontent com madmashup targeted marketing predic
  • k2pdfopt详细教程-让kindle看遍所有pdf

    pdf拿什么拯救6寸kindle救世主登场一步一步解决图文混排扫描版pdf 书籍总结 pdf xff0c 拿什么拯救6寸kindle kindle现在已经出道paperwhite第三代了 xff08 2015年7月 xff09 xff0c
  • 图像处理PSNR及其计算(OpenCV和matlab实现)

    图像PSNR及其计算OpenCV和matlab实现 PSNR的概念PSNR编程实现 matlab实现 第一种实现方法第二种直观方法第三种实现方法 OpenCV实现 参考资料 图像PSNR及其计算 xff08 OpenCV和matlab实现
  • Caffe技巧之使用snapshot来继续网络训练

    Caffe技巧之使用snapshot来继续网络训练 Caffe技巧之使用snapshot来继续网络训练 Step 1设置solverprototxtStep 2设置运行脚本sh 有时候想在已经训练好的网络上继续之前的训练 xff0c 那么可
  • 鸿蒙最新功能及承载设备详解:HarmonyOS 2及华为全场景新品发布会全纪录

    6月2日 xff0c 华为联手CSDN直播了 HarmonyOS 2及华为全场景新品发布会 xff0c 老猿全程观看直播 xff0c 并进行了回看 xff0c 力争将发布会的核心内容在本文中概要性地呈现 一 一生万物 万物归一 首先是华为消
  • python删除网页html元素

    找到标签id 以id来删除 js span class token operator 61 span span class token string 39 var child 61 document getElementById 34 ex

随机推荐

  • 10.面向对象分析OOA笔记

    文章目录 概述需求陈述建立对象模型典型步骤 建立动态模型典型步骤 建立功能模型数据流图画法 定义服务 概述 识别出问题域内的类和对象 xff0c 分析它们之间的关系 xff0c 建立问题域的正确模型 三种模型中 xff0c 对象模型是最重要
  • 12.软件项目管理笔记

    文章目录 估算软件规模代码行技术KLOC功能点技术FP 估算工作量进度计划人员组织质量保证软件配置管理能力成熟度模型CMM 估算软件规模 代码行技术KLOC xff08 最小规模平均值a 43 4 最可能规模平均值 43 最大规模平均值b
  • 0.各种规格描述技术总结

    文章目录 结构化分析与设计面向对象分析与设计软件项目管理 结构化分析与设计 系统流程图 xff1a 描绘物理系统 E R图 xff1a 数据模型 层次方框图 xff1a 描绘数据结构 xff0c 数据模型 Warnier图 xff1a 描绘
  • 如何更改Git的端口号

    方法一 直接修改URL为SSH 开头 打开gitbash xff0c 进入仓库 xff0c 输入指令 xff1a git remote set url origin ssh git 64 domain com 1234 home git Y
  • vtk多平面重建(MPR)源码

    include 34 vtkSmartPointer h 34 include 34 vtkActor h 34 include 34 vtkCamera h 34 include 34 vtkCellPicker h 34 include
  • 0.1 + 0.2 不等于0.3 问题,精度的丢失和解决办法

    10个0 1相加不等于1 xff1b 这是因为浮点数精度丢失的问题 xff0c 首先知道在计算机中数字是以二进制的方式存在的 xff0c 那么在CPU中计算0 1 43 0 1时实际上是0 1的二进制的相加 xff1b xff08 0 1
  • Raspberrypi 3 系统备份还原, 基于最小系统镜像实现

    Raspberrypi 3 备份还原系统 一 为什么要备份系统 xff1f 1 经常在树莓派上调试程序 xff0c 安装各种软件 xff0c 越来越多的库和程序的安装带来的系统更改几乎是不可逆的 xff0c 一旦某个程序或者驱动出现问题 x
  • OpenStack(Kilo) + Tenant-OVS-VXLAN(ml2) + Multi-Ext-Net

    from http blog sina com cn s blog 6de3aa8a0102vl7m html 使用VirualBox创建CentOS7虚拟机 资源分配视宿主windows而定 xff0c 由于要部署OpenStack xf
  • 利用策略模式优化if-else

    一 定义 策略模式 Strategy Pattern 策略模式属于对象的行为模式 其用意是针对一组算法 xff0c 将每一个算法封装到具有共同接口的独立的类中 xff0c 从而使得它们可以相互替换 策略模式使得算法可以在不影响到客户端的情况
  • web技术分享| 【高德地图】实现自定义的轨迹回放

    实现 轨迹回放 方式有两种 xff1a 第一种是使用 JS API 和 AMap PolyLine xff08 折线 xff09 等图形配合实现 第二种是使用 JS API 和 AMapUI 组件库 配合使用 xff0c 利用 PathSi
  • ubuntu14.04 忘记了普通用户密码和root密码

    步骤一 xff1a 必须先找回ROOT xff0c 才可以往下做 本文使用的Ubuntu版本为14 04 4 xff0c 具体过程如下为 xff1a 1 重启电脑长按shift键直到进入下图进入GRUB引导模式 xff0c 选择第二行Ubu
  • 乐优商城介绍

    1 乐优商城介绍 1 1 项目介绍 乐优商城是一个全品类的电商购物网站 xff08 B2C xff09 用户可以在线购买商品 加入购物车 下单 秒杀商品可以品论已购买商品管理员可以在后台管理商品的上下架 促销活动管理员可以监控商品销售状况客
  • 使用java中replaceAll方法替换字符串中的反斜杠

    今天在项目中使用java中replaceAll方法将字符串中的反斜杠 34 34 替换成空字符串 34 34 xff0c 结果出现如下的异常 xff1a 1 java util regex PatternSyntaxException Un
  • 正则表达式匹配引号中间的内容怎么写?

    字符串 123 abc 456 匹配结果 abc Answer1 利用先行和后发断言规则 xff1a lt 61 34 61 34 最近总结了一篇关于正则表达式的博文 xff0c 题主不妨一读 xff1a 正则表达式基础 测试代码如下 xf
  • excel将一个工作表根据条件拆分成多个工作表图文教程

    本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表 注意 xff1a 很多朋友反映sheets i delete这句代码出错 xff0c 要注意下面第一个步骤 xff0c 要拆分的数据工作表名称为 数据源 xff0c 而不是你新
  • python3下cv2.imwrite存储带有中文路径

    由于imwrite前使用编码在python3中已经不适用 xff0c 可用imencode代替 xff0c 以下代码是从视频中获取第2帧保存在中文文件夹下的实例 xff1a cap 61 cv2 VideoCapture 34 mp4 34
  • tf.placeholder、feed_dict用法说明

    函数形式 xff1a tf placeholder dtype shape 61 None name 61 None 参数 xff1a dtype xff1a 数据类型 常用的是tf float32 tf float64等数值类型 shap
  • sess.run()

    函数 xff1a run fetches feed dict 61 None options 61 None run metadata 61 None 当构建完图后 xff0c 需要在一个session会话中启动图 xff0c 第一步是创建
  • 卷积神经网络之AlexNet网络详解

    一 介绍 Alex Krizhevsky等人训练了一个大型的卷积神经网络用来把ImageNet LSVRC 2010比赛中120万张高分辨率的图像分为1000个不同的类别 在测试卷上 xff0c 获得很高准确率 top 1 and top
  • 如何分清分布式、高并发与多线程

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