分布式领域所说的同步与异步通信环境具体是指什么?
一、分布式领域所说的同步与异步通信环境具体是指什么
在分布式领域,同步和异步通信环境是指不同的通信模型。这两种通信模型都可以用于在分布式系统中进行进程间的通信。
同步通信环境中,发送方需要等待接收方确认才能继续执行下面的操作,直到接收方已经成功接收到消息后,发送方才会被释放继续执行。这意味着,在同步通信环境中,发送方和接收方必须遵循严格的同步规则,以便协同工作和沟通。同步通信环境可以确保消息的可靠性和顺序性,但也可能会导致队列阻塞和死锁等问题。
异步通信环境中,发送方并不需要等待接收方确认,即使接收方并没有响应,发送方仍然可以继续执行下面的操作。在异步通信环境中,每个进程都可以独立地执行,并且不需要等待其他进程的响应。这种自由度可能会带来更高的性能和更好的并行性,但也可能会导致一些不确定性,例如消息丢失或乱序到达等问题。
二、分布式概述
1、什么是分布式系统
多个计算机或设备组合起来一起工作的系统。它的特点是在使用者看来,所有的接口看似都是由一个系统提供的;设备之间需要使用网络通信;某个设备发生故障后,其他的设备可能是可用的。如WEB服务,存储服务和应用服务通过网络传输数据,当存储服务宕机后,应用服务可能还会使用缓存继续提供服务。如电话服务,系统由转机和终端共同提供服务,各个设备通过电话线通信。
网络上很多文章所说的分布式大多数互联网的WEB系统,这是由于活跃着大多是WEB系统相关开发人员。但事实上分布式系统没有那么单一,也没有那么复杂,目前我们所使用的服务基本上都是分布式系统而分布式系统也仅仅是一组设备组成的工作集合。
2、为什么需要分布式系统
从分布式系统的特点说起,如果需要大数据量、高可用、可扩展、高性能,那么就需要分布式系统。如:
电话系统使用分布式设计,目的是实现系统的灵活性和可用性。WEB系统使用分布式设计,目的是提高可用性和并发以及性能。3、什么是分布式技术
多个计算机组合使用时,会面临一些问题,如网络通信、设备故障、并发等问题,而分布式技术就是为了解决这些问题的。
RPC 技术解决多个设备的通信问题。复制技术解决数据的备份问题和提升性能和并发。分片技术解决数据存储量问题和提升性能。分布式锁解决多个计算机组合时的并发读写问题。分布式缓存解决多个应用服务时本地缓存的一致性问题。分布式事务解决多个设备行为的一致性和隔离性问题。4、分布式系统的演变
集中式系统非集中式系统混合系统5、分布式系统的优缺点
优点:
提升系统并发、性能、可用性、扩展性、伸缩性等能力;节省成本,利用有限的计算机资源提供更好的服务;缺点:
多个设备的操作一致性和并发问题:用户一个操作需要多个设备的多个操作时,如何实现操作失败后各个设备的回滚和并发操作时的问题。通常使用分布式事务技术尽可能的解决,较好的方式还是避免。多个设备的数据一致性问题:无状态服务的复制无需关注,但有状态服务的复制由于通信延迟和并发原因会使得多个副本上数据不一致。通常使用一致性算法解决(Raft)。多个设备的通信问题:由于需要通络进行通信,因此当网络故障或波动后就会造成设备之间的通信断开问题。通常使用重试和Fullback机制等解决。设备的故障率问题:集中式系统只有一台设备,可以通过优化环境减小故障率,而分布式系统中多个设备组合使用加大了故障率。通常使用复制技术提升系统高可用。6、分布式系统的类型
实际上,一个系统可能不仅仅是由某一类型的分布式系统独立实现的,很可能是多个分布式类型的系统之间的相互组合,又构成一个大的分布式系统。
如WEB服务中,本身是一个分布式信息系统,但其中可能使用了分布式存储系统中的数据管理系统和消息系统,还可能使用了分布式计算系统用于实现数据的计算与分析。
分布式存储系统分布式计算系统分布式信息系统分布式嵌入系统7、分布式系统面临的挑战
分布式系统需要大量机器协作,面临诸多的挑战:
异构的机器与网络:分布式系统中的机器,配置不一样,其上运行的服务也可能由不同的语言、架构实现,因此处理能力也不一样;节点间通过网络连接,而不同网络运营商提供的网络的带宽、延时、丢包率又不一样。怎么保证大家齐头并进,共同完成目标,这是个不小的挑战。普遍的节点故障:虽然单个节点的故障概率较低,但节点数目达到一定规模,出故障的概率就变高了。分布式系统需要保证故障发生的时候,系统仍然是可用的,这就需要监控节点的状态,在节点故障的情况下将该节点负责的计算、存储任务转移到其他节点。不可靠的网络:节点间通过网络通信,而网络是不可靠的。可能的网络问题包括:网络分割、延时、丢包、乱序。相比单机过程调用,网络通信最让人头疼的是超时:节点A向节点B发出请求,在约定的时间内没有收到节点B的响应,那么B是否处理了请求,这个是不确定的。延伸阅读1:同步的理解
同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;同步就相当于是 当客户端发送请求给服务端,在等待服务端响应的请求时,客户端不做其他的事情。当服务端做完了才返回到客户端。这样的话客户端需要一直等待。用户使用起来会有不友好。

猜你喜欢LIKE
相关推荐HOT
更多>>
线程池执行过程中遇到异常会发生什么,怎样处理?
线程池执行过程中遇到异常以及处理线程池执行过程中遇到异常会触发一系列的处理机制。当线程池中的某个线程抛出未捕获的异常时,线程将立即终止...详情>>
2023-10-16 22:10:11
为什么说PHP与Swoole是优异组合?
PHP与Swoole在Web开发和网络编程领域中,共同构成了一种强大的解决方案。什么是PHPPHP是一种广泛使用的开源服务器端脚本语言,特别适用于Web开...详情>>
2023-10-16 20:56:37
有什么好用的redis可视化管理工具?
一、Redis Desk较好 ManagerRedis Desk较好 Manager是一款非常受欢迎的Redis数据库管理工具。它支持直接进行数据修改、删除和新增等操作,而且...详情>>
2023-10-16 19:30:54
mysql怎么查询连续时间段的最大值?
一、mysql怎么查询连续时间段的最大值按仪器与时间(处理成小时)group by,计算值的数量与和,再根据结果判断值数量是否有缺失值,以及和的最...详情>>
2023-10-16 15:15:18热门推荐
Oracle怎么连接数据库?
沸git pull 和git fetch的区别?
热JDK动态代理为什么必须要基于接口?
热线程池执行过程中遇到异常会发生什么,怎样处理?
新HTTP协议中URI和URL有什么区别?
为什么说PHP与Swoole是优异组合?
显示器的 VGA、HDMI、DVI 和 DisplayPort 接口有什么区别?
如何删除需要使用管理员权限才能删除的文件?
有什么好用的redis可视化管理工具?
arm架构和x86架构有什么区别?
GitLab为什么选择Vue.js?
实现atoi函数时需要注意什么?
Ruby中为什么不能显式的调用私有方法?
与数据库的连接为什么会很耗时、耗费资源?
技术干货






