异地恋见面晚上都做几次,异地恋分手了要见最后一面吗

RPC作为目前的主流技术之一,它打破了某一项任务所需的计算资源只能靠一台计算机来实现的固有想法,对分布式计算、微服务等领域都有着重要而深远的影响。从20世纪80

RPC是一种技术时代的创新,是一种软件构建概念。 RPC的价值在于它为构建分布式应用程序提供了理论基础。

在互联网发展的早期,人们对互联网的依赖程度并不高。网站和应用流量较小,所有功能集中部署,降低部署成本和复杂度。

例如,在网上购物中,浏览、订购和支付产品都是在一个流程中完成的,所有模块和代码都捆绑在一起,数据库和应用服务没有分离。同一服务器。

随着越来越多的人使用互联网产品,系统应用在开发过程中变得越来越复杂,单一的应用架构占用的资源越来越多,目前部署成本也随之增加。而且,这种架构在多个功能模块混合时会造成臃肿,不再保证在线质量,消除了单一应用架构的唯一优势,引入了容错和可扩展性问题等一系列问题,也暴露出问题。

随着用户数量的增加、系统的复杂化,单一的应用架构已经不能满足用户的需求,垂直应用架构应运而生。

垂直应用架构是指将数据和应用分离,基于垂直业务单元将单个庞大、臃肿的应用解构为多个互不相关的应用,以提高效率。

例如,在一个简单的商城系统中,卖家的管理平台和买家的购物平台是分开的,分别部署。这种架构在一定程度上缓解了用户数量增加带来的流量压力,并且当某个模块的流量压力较大时,只允许该模块进行水平扩展。

与单一应用程序架构相比,它更具可维护性、可扩展性,并且有利于协作开发。然而,随着业务需求的增加,不同模块之间出现了业务交互的需求。例如,订购模块可能想要访问用户模块并查询诸如送货地址之类的信息。当一些业务应用需要分解为子业务以提高业务的复用性时,分布式架构就派上用场了。分布式架构增加了服务的灵活性和复用性,允许每个服务灵活地伸缩。

此外,分布式架构还提供了计算和存储的高可用性。分布式架构的核心是利用RPC来解决服务之间的交互问题。因此,RPC提供的好处也是分布式架构提供的好处。

虽然RPC的出现固然给分布式系统的构建带来了便利,但同时也暴露了分布式系统本身的问题。

首先是通信延迟的问题,也就是通常所说的响应时间延长的问题。用户单击事件可能需要由多个服务处理,每个服务部署在不同的计算机上。机器和网络之间的进程间通信比同一机器内进程之间的通信更有可能遇到通信延迟。更大。 RPC 依赖于Internet,可能会遇到网络延迟。除了网络延迟之外,编码/解码导致的性能下降也是RPC 相对于LPC(本地过程调用)的缺点。关于性能问题,早期的一些想法是可以通过硬件和软件两个方面来解决这个问题,比如硬件开发和虚拟内存技术。随着网络技术的不断改进,网络通信速度不断提高,减少了RPC对网络延迟的负面影响。除了RPC带来的延迟和性能问题外,服务节点之间的网络通信也不可靠,可能会导致故障、内容错误和数据丢失等问题。随着网络技术的发展,针对这些问题的相应解决方案也随之出现。

第二个问题是地址空间是分开的。内存地址只在同一台机器上有效。地址空间可以共享,但地址空间在整个网络中是完全分离的。例如,当使用指针时,本地地址空间中的指针在另一台机器上没有任何意义。虽然RPC可以通过一些编程范式隐藏本地调用和远程调用之间的本质区别,但是开发人员必须意识到两者之间的区别。这是因为,如果开发者不知道这个区别,而以本地调用的方式使用指针,就会出现意想不到的结果,势必会增加开发者的开发成本。

第三个问题是局部故障。如果所有的服务都部署在一台机器上,那么如果一台机器出现故障,那么该机器上的所有模块和系统都会出现故障。但在分布式架构中,不同的服务部署在不同的机器上,增加了服务节点的数量。如果一项服务发生故障,可能只有一个或几个节点发生故障。如果某些节点发生故障,最初没有公共组件负责检测或通知节点故障。但是,您现在可以使用注册中心解决此问题。招生中心内容详见《深入理解RPC框架原理与实现》书第3章。 RPC除了需要引入新的组件来进行故障检测和通知之外,还模糊了故障的类型,使问题识别变得复杂。例如,在本地故障问题中,网络链路的故障与该链路上远程机器处理器的故障无法区分。除了更难发现和隔离问题之外,它还更难解决本地故障。这是因为需要保证本地故障后整个集群的处理结果是一致的。例如,您应该使用分布式事务解决方案来确保集群中所有节点上的数据写入操作一致。由于本地故障而向故障节点写入数据不会失败并且会成功。将数据写入非故障节点并不能保证数据完整性。所有这些与故障相关的问题都是在引入RPC 后出现的。

第四个问题是并发性。在分布式架构中,每个服务都有多个节点。当多个节点同时开始调用服务时,会出现并发问题并出现各种意外结果。本地调用还存在多线程并发调用的问题,但是非分布式架构可以让您完全控制调用序列,而分布式架构引入了真正的异步操作调用,因此您无法完全控制调用序列。不能。由于每个节点在不同的机器上,所以开始调用的时间不统一控制,无法控制。

这些都是RPC带来的问题,也是分布式架构面临的挑战。这些问题确实非常困难,但也逐渐收到了相应的解决方案和改进,这些问题不再阻碍分布式架构的发展。

*本文摘自书籍《深入理解RPC框架原理与实现》。阅读本书以了解有关RPC 框架的更多信息。

5ae0c7b4ab80402bb460ca74921f7a9b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717815035&x-signature=ce8V8igeT1EUDX7tCtVwW1UiBcI%3D

ef2467c040bb412094875416aef31b89~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717815035&x-signature=OlqV4PAF8pTFVlg7y8CWOXhS9Ug%3D

《深入理解RPC框架原理与实现》

花忠明编剧

本书的内容涵盖了这三个部分;除了介绍市面上主流的RPC框架外,还提供了如何使用这些RPC框架的示例,通过这些示例读者可以学习如何使用RPC。使用该框架。此外,本书还介绍了RPC框架的选型,为读者提供选型指南。

本书介绍了RPC框架的核心组件,为每个核心组件提供了足够的背景信息,即使对于该领域的新手也很容易理解。此外,在本书介绍每个核心组件时,我们重点介绍了各种行业实施解决方案,以增强读者对该核心组件的理解。本书还提供了一个简单的RPC 框架的示例实现。 RPC框架的实际实现可以让读者超越理论层面,直接使用RPC技术。创建RPC 框架的理论。

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/85082.html

(0)
小条's avatar小条
上一篇 2024年6月1日 上午10:50
下一篇 2024年6月1日 上午10:59

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注