微服务架构的常用 RPC 协议 | 学习笔记

简介: 快速学习微服务架构的常用 RPC 协议 。

开发者学堂课程【Spring Cloud 微服务架构设计与开发实战 微服务架构的常用 RPC 协议】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/60/detail/1109


微服务架构的常用 RPC 协议

 

内容介绍:

一、微服务常用的通讯模式

二、经典的 RPC 协议

三、微服务常用的通信协议

 

一、微服务常用的通信模式 

image.png

1.同步

2.异步

比较多的说消息推送,发送完某个消息以后实际这个消息并不一定立即到达可能会经过一段时间的延迟才到达接收方。通过聊天工具发一条消息。

这种消息的发送实际经过消息的中间服务器进行转发这个转发的过程并不是同步模式一般采用的,是业务模式,采用这种异步模式带来一个好处,一般这种系统的吞吐量相对来说比较高一点,缺点也同样存在,缺点是没法保证消息的一个及时性

3.混合

既存在同步也存在异步消息交换模式,一般情况下,协议基本上绝大部分都是同模式,个别协议在协议层次上,可能是支持异步,比如说邮件协议,或者消息消息协议,学习协议层支持异步模式

 

二,经典的 RPC 协议

1.HTTP/REST(synchronous)

2.TCP

3.UDP

4.Dubbo

5. Netty

6. RMI

7. Hessian

8. gRPC

9.Webservice SOAP

10.Thrift

11.Memcached

12. Redis

13.AMQP (asynchronous)

14.MQTT

image.png

 

三,微服务常用的通信协议

1.同步调用

l HTTP/REST(synchronous)

l REST(http,websocket, JAX-RS,Spring Boot,node.js,Web API)

REST 这种框架基本上是外部框架改造,再加一层数据序列化,反序列化,

l RPC(Netty,Dubbo,Thrift,gRPC)

其他的这种框架,也可能采用不同的,像 Dubbo 或者 Netty 的支持各种不同的这种协议。不仅可以开发 Rest,也能开发其他的各种这种接口,或者自定义协议,

2.异步调用

l AMQP(asynchronous)

l 消息队列(ActiveMQRabbitMQ,Kafka, RocketMQ, Notify, MetaQ)

消息队列,在早期是经常使用的经典的一个就是 RabbitMQ,还有就是 RocketMQ 消息并发量可以达到百万级别

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
11月前
|
JSON 移动开发 网络协议
gRPC不是银弹:为内网极致性能,如何设计自己的RPC协议?
自研RPC协议针对内网高并发场景,通过精简帧头、长度前缀解决TCP拆包粘包,支持灵活扩展与高效序列化,显著提升性能与资源利用率,适用于对延迟敏感的分布式系统。
568 4
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
1088 3
|
人工智能 JavaScript 开发工具
MCP详解:背景、架构与应用
模型上下文协议(MCP)是由Anthropic提出的开源标准,旨在解决大语言模型与外部数据源和工具集成的难题。作为AI领域的“USB-C接口”,MCP通过标准化、双向通信通道连接模型与外部服务,支持资源访问、工具调用及提示模板交互。其架构基于客户端-服务器模型,提供Python、TypeScript等多语言SDK,方便开发者快速构建服务。MCP已广泛应用于文件系统、数据库、网页浏览等领域,并被阿里云百炼平台引入,助力快速搭建智能助手。未来,MCP有望成为连接大模型与现实世界的通用标准,推动AI生态繁荣发展。
10391 66
|
人工智能 自然语言处理 API
MCP与A2A协议比较:人工智能系统互联与协作的技术基础架构
本文深入解析了人工智能领域的两项关键基础设施协议:模型上下文协议(MCP)与代理对代理协议(A2A)。MCP由Anthropic开发,专注于标准化AI模型与外部工具和数据源的连接,降低系统集成复杂度;A2A由Google发布,旨在实现不同AI代理间的跨平台协作。两者虽有相似之处,但在设计目标与应用场景上互为补充。文章通过具体示例分析了两种协议的技术差异及适用场景,并探讨了其在企业工作流自动化、医疗信息系统和软件工程中的应用。最后,文章强调了整合MCP与A2A构建协同AI系统架构的重要性,为未来AI技术生态系统的演进提供了方向。
2063 62
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
1357 129
|
自然语言处理 JavaScript Java
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS架构介绍
HarmonyOS采用分层架构设计,从下至上分为内核层、系统服务层、框架层和应用层。内核层支持多内核设计与硬件驱动;系统服务层提供核心能力和服务;框架层支持多语言开发;应用层包括系统及第三方应用,支持跨设备调度,确保一致的用户体验。
1547 81
|
XML JSON 网络协议
利用HTTP POST协议实现简单的RPC协议:WireShark抓包分析
通过这种方式,我们可以使用HTTP POST实现简单的RPC协议,并使用WireShark进行抓包分析。这不仅可以帮助我们理解RPC协议的工作原理,也可以帮助我们调试和优化我们的代码。
777 30
|
JSON 数据格式
利用HTTP POST协议实现简单的RPC协议,并使用WireShark进行抓包分析
通过这种方式,我们可以利用HTTP POST实现简单的RPC协议,并使用WireShark进行抓包分析。这种方式简单易懂,实用性强,可以应用于各种网络编程场景。
658 16
|
人工智能 前端开发 Java
DDD四层架构和MVC三层架构的个人理解和学习笔记
领域驱动设计(DDD)是一种以业务为核心的设计方法,与传统MVC架构不同,DDD将业务逻辑拆分为应用层和领域层,更关注业务领域而非数据库设计。其四层架构包括:Interface(接口层)、Application(应用层)、Domain(领域层)和Infrastructure(基础层)。各层职责分明,避免跨层调用,确保业务逻辑清晰。代码实现中,通过DTO、Entity、DO等对象的转换,结合ProtoBuf协议,完成请求与响应的处理流程。为提高复用性,实际项目中可增加Common层存放公共依赖。DDD强调从业务出发设计软件,适应复杂业务场景,是微服务架构的重要设计思想。