当前位置: 首页 > 科技观察

如何理解分布式、高并发、多线程

时间:2023-03-16 15:14:34 科技观察

1、什么是分布式?分布式更多的是一个概念。它是一种用于解决单个物理服务器容量和性能瓶颈的优化方法。这个领域有很多问题需要解决。在不同的技术层次上,还包括:分布式文件系统、分布式缓存、分布式数据库、分布式计算等,一些术语如Hadoop、zookeeper、mq等都与分布式有关。从概念上讲,分布式实现有两种形式:水平扩展当一台机器无法处理流量时,增加机器将流量平均分配给所有服务器,所有机器都可以提供对等的服务。当垂直拆分前端有多个查询需求时,一台机器无法处理,可以将不同的需求分布到不同的机器上。比如机器A处理订单查询请求,机器B处理支付请求。2、什么是高并发?与分布式相比,高并发会专注于解决问题,体现的是并发的数量:比如在线直播服务,几万人同时观看。高并发可以通过分布式技术解决,将并发流量分到不同的物理服务器上。但除此之外,还有很多其他的优化方式:比如使用缓存系统,将所有静态内容放到CDN上等等;您还可以使用多线程技术来最大化服务器的服务能力。3.什么是多线程?多线程是指在软件或硬件上同时执行多个线程的技术。更多的是解决CPU调度多个进程的问题,让这些进程看起来是同时执行的(实际上是交替运行的)。在这些概念中,多线程解决的问题最为清晰,方法也比较简单。基本上,遇到的最大问题就是线程安全。在JAVA语言中,需要对JVM内存模型、指令重排等有深刻的理解,才能写出高质量的多线程代码。4.总结分布式就是从物理资源的角度,把不同的机器组成一个整体对外的服务。技术范围很广,难度也很大。有了这个基础,就很容易构建出高并发、高吞吐量的系统;高并发是从业务角度来描述系统的能力,实现高并发的手段可以是分布式、缓存、CDN等,当然也包括多线程;多线程关注的是如何利用编程语言最大限度地发挥CPU的调度能力。