专业的编程技术博客社区

网站首页 > 博客文章 正文

认识分布式,高并发,多线程,看完又涨知识了!

baijin 2024-10-07 06:18:37 博客文章 4 ℃ 0 评论

在实际工作中,经常听到分布式、高并发、多线程,一开始接触的时候,很容易将三者混淆。今天分享一下我对这三者的理解。

分布式

分布式与集中式相对应,集中式更多的出现在传统服务架构中,即整个项目就是一个应用。

而分布式更多的出现在微服务架构中,是一种为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。

分布式需要解决的问题极多,在不同的技术层面上,又包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等。

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

  1. 水平扩展;
  2. 垂直拆分。

高并发

高并发通常是指系统同时并行处理很多请求。

与并发相关的还有一个容易混淆的概念,就是并行。

并行,是指多个CPU实例或者多台机器同时执行一段处理逻辑,是真正的同时。

并发,通过CPU调度算法,让用户看上去同时执行,实际上从CPU操作层面不是真正的同时。而并发可以通过一些指标进行定量的分析,如并发数、吞吐量、QPS。

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

高并发可以通过分布式技术去解决,将并发流量分到不同的物理服务器上。提升系统的并发能力也有两种方式:

  1. 垂直扩展,提升单机处理能力。提升单机处理能力可通过增强单机硬件性能或提升单机架构性能,如扩充系统内存等。
  2. 水平扩展,增加服务器数量,扩充系统性能。

多线程

多线程是指从软件或者硬件上实现多个线程并发执行的技术,它更多的是解决CPU调度多个进程的问题。

总结

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

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

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


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表