并发并行、同步异步、分布式集群微服务的简单理解

PS: 仅代表个人理解,欢迎各位大佬指正

一、并发与并行

并发是指同一时间在同一处理器上执行不同的任务
下图Task1与Tasks之间就是并发

并行是指同一时间在不同处理器上执行不同的任务
下图Task1与Task3之间就是并行

在这里插入图片描述

二、同步和异步

同步是指当一个任务执行时,其他任务要等待这个任务执行完成才能执行。
常见开启同步的方法:锁、sychronized等

异步时指任务当一个任务执行时,其他任务无需等该任务执行完成也能执行。
常见开启异步的方法:多线程等

举个很简单的例子:
异步:做饭的时候边煮饭边炒菜
同步:做饭的时候先煮饭,等饭煮好了再去炒菜

问:异步一定比同步好吗?

结果当然是否定的。异步确实效率比要比同步高,但是异步在写操作时会容易出现问题,这时候就需要用同步的方式处理。平常操作共享变量一般都采用同步的方式。

一个很经典的例子,去银行取钱,如果采用异步方式就很容易出现问题。两个人取同一张还有100元的卡里的钱,都取50,但是最后结果应该时卡里还有0元,但是异步方式就有可能导致结果还剩50元。这种情况采用同步的方式才是最合适的。

三、分布式、集群与微服务

分布式:将一个功能(系统)分解为许多子功能(系统)并将其部署在不同服务器上,这些子功能(系统)相互协作共同完成这一个功能(系统)。好比多个人完成不同的任务。

集群:相同的一个功能(系统)部署在不同的服务器上。好比多个人完成统一个任务。

分布式需要将功能或系统进行拆分,而集群则是将某个功能或系统部署于多个服务器上。

微服务:与分布式类似,只不过微服务是将功能做细粒度拆分,功能拆分到不可再拆分,而且微服务可以部署到同一服务器上,而分布式不可以。
分布式可以说是微服务的一种实现。分布式一定是微服务,但微服务不一定是分布式,因为微服务可以部署在同一台服务器上。

例子:分布式数据库和数据库集群
分布式:将数据库分库分表,每个数据库或表处理几个数据表或字段的数据。
集群:建立两个或多个相同的数据库。或者数据库分库分表好建立多个相同的分库分表在不同的服务器上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值