微服务架构是一种既定模式,用于构建由松散耦合模块组成的复杂系统。它是过去几年中最受关注的软件架构趋势之一。将一个大型的、相互依赖的系统分解成许多小的、轻量级的模块,这似乎是一个非常简单的想法,这些模块可以使软件管理更容易。
我们提供的服务有:成都网站设计、成都做网站、微信公众号开发、网站优化、网站认证、赞皇ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的赞皇网站制作公司
这里有一个要点:在将整体应用程序分解为小模块之后,应该如何以有意义的方式将它们连接在一起?不幸的是,这个问题没有单一的正确答案,但通常情况下,有几种方法取决于应用程序和个别用例。
微服务中使用的两种常见协议是使用资源 API 的 HTTP 请求/响应和跨多个微服务通信更新时的轻量级异步消息传递。让我们探索这些协议。
微服务可以通过多种不同的通信模式进行通信,每种模式都针对不同的用例。这些类型的通信主要可以分为两个维度。第一个维度定义通信协议是同步的还是异步的:
同步与异步通信第二个维度定义了通信是有一个接收者还是多个接收者:
微服务之间最常见的通信类型是在调用 REST API 时使用同步协议(如 HTTP/HTTPS)的单接收器通信。微服务通常使用消息协议在微服务之间进行异步通信。这种异步通信可能涉及单个接收器或多个接收器,具体取决于应用程序的需要。
表述性状态传输 (REST) 是一种流行的请求和响应通信架构风格,它可以作为同步通信类型的一个很好的例子。这是基于 HTTP 协议,包含 GET、POST、PUT、DELETE 等动词。在这种通信模式中,调用者等待服务器的响应。
图 1:基于 REST API 的通信
REST 是服务间通信最常用的架构风格,但在涉及微服务架构时,严重依赖这种类型的通信会产生一些负面影响:
消息在遵循异步协议的微服务架构中被广泛使用。在此模式中,服务发送消息而不等待响应,并且一个或多个服务异步处理消息。异步消息传递提供了许多好处,但也带来了幂等性、消息排序、毒消息处理和消息代理的复杂性等挑战,这些消息代理必须具有高可用性。
重要的是要注意异步 I/O 和异步协议之间的区别。异步 I/O意味着调用线程在执行 I/O 操作时不会被阻塞。这是软件设计方面的一个实现细节。异步协议意味着发送方不等待响应。
图 2:基于消息的通信
异步消息传递与同步消息传递相比有一些优势:
尽管异步消息传递有很多优点,但它也有一些折衷:
异步消息传递已经成熟为多种消息传递模式。这些模式适用于分布式系统的多个部分必须以可靠和可扩展的方式相互通信的场景。让我们来看看其中的一些模式。
发布/订阅模式意味着发布者将消息发送到消息代理上的通道。一个或多个订阅者订阅频道并以异步方式从频道接收消息。当微服务需要向大量消费者广播信息时,此模式很有用。
图 3:发布/订阅模式
发布/订阅模式具有以下优点:
使用这种模式有一些缺点:
在基于队列的模式中,发送方将消息发布到包含接收方所需数据的队列。队列充当缓冲区,存储消息直到它被接收者检索。接收者从队列中检索消息并按照自己的节奏处理它们。此模式对于使用容易过载的服务的任何应用程序都很有用。
图 4:基于队列的模式
基于队列的模式有以下优点:
使用这种模式有一些缺点:
异步通信通常通过消息代理进行管理。在为异步通信选择正确的消息传递基础设施时,需要考虑一些因素:
微服务越来越成为设计可扩展和弹性系统的实际方法。微服务之间的所有通信都没有单一的方法。RESTful API 提供请求-响应模型以在服务之间进行通信,而异步消息传递则在不同服务之间提供更具可扩展性的生产者-消费者关系。尽管微服务可以通过消息传递和 REST API 相互通信,但消息传递架构是提高敏捷性和快速移动的理想选择。它们常见于使用微服务的现代应用程序或任何具有解耦组件的应用程序中。
在为您的微服务选择合适的通信方式时,请务必将消费者的需求与一种或多种通信类型相匹配,从而为您的服务提供强大的接口。
网站名称:微服务中REST与消息传递对比
网址分享:http://www.shufengxianlan.com/qtweb/news6/404356.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联