开发者学堂课程干货总结——Spring Cloud微服务架构设计与开发实战(六)

简介: Spring Cloud微服务架构设计与开发实战课时1.6—微服务架构常用RPC协议 。Java Spring Cloud是全球范围内最成熟、最完善、最流行的微服务架构方案体系。被众多的互联网大公司采用,包括阿里巴巴、腾讯、支付宝、网易、IBM、谷歌、京东、百度、滴滴等。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!

哈喽各位同学们大家好呀,小编今天带着开发者学院中课程“微服务架构常用RPC协议”干货总结来了~一起学习新课程吧!

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:微服务架构常用RPC协议

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

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java


微服务架构常用RPC协议


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

1、微服务的消息通信模式 

消息交换的模式有很多种,使用较多的是同步消息的交互模式,典型特征是发送完消息后会等待一个结果, 

浏览器发送一个网页请求后,会等待网页返回,中间存在请求应答的过程,这就属于同步请求的模式。 

image.png 

异步请求模式的常见场景是消息推送,发送完某个消息后,这个消息并不会立即到达,可能会经过一定延迟才到达接收方。异步模式的优点是并发或吞吐量较高;缺点是无法保证消息的实时性。 

目前在分布式架构上,同步与异步相结合的消息交换场景也很常见。 

协议上绝大部分都是同步模式,个别支持异步,例如邮件协议或者消息协议。 

 

 

二、经典的RPC协议  

image.png 

上图是在分布系统中常用的一些RPC协议。RPC本身是远程过程调用,主要解决远程的通信问题,而不仅是封装原始的数据通信协议与网络协议。 

在此基础上,需要借助某些框架语言来实现功能的交互。例如,希望客户端通过调用服务器端的某个订单或者加密的功能,实现远程的功能调用。 

这是通过网络来暴露自己代码功能较早的一种方式。RPC协议非常多,不仅是REST API,APP协议暴露接口,前端分裂架构基本上也都是API加前端、小程序、APP、PC网页等这种模式,是在移动互联网时代用得较多的架构。 

前端分离,后端演化成微服务架构。微服务架构一般和业务模式有关,业务需求是第一位,技术服务于业务。在内部通信领域,并非只有一种协议,可能多种协议并存,如TCP、UDP、HTTP等协议并存。 

Rest API基本上走的是APP协议,一般是接收数据格式。在这个领域里面,RPC概念在native本身也支持分布式通信框架。但是相对来说,在大规模分布式集群治理领域,阿里的Dubbo设计非常优秀,不断迭代,表现优异。 

数据库JDBC属于分布式通信解决方案之一,但通信协议是GDB框架定义,专有的协议格式,支持引入中间链、消息队列等,使用不同的协议进行通信。 

这并非表示跨平台是最优秀的,它的性能越好,安全性越高,可能越封闭。但是它开放性标准化有助于大范围的行业推广,适用性更强。有些公司的协议不开放,这是由于从公司的业务角度来说,微服务属于分布式架构。 

分布架构继承了早期的分布式框架特点,在RVICES API这些应用基础上进行了架构的升级改造,在大规模的服务接口集群化治理走向了更高的层次,架构师面临的挑战也更大。 

 

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

1、微服务之间的通信协议与框架中间件 

image.png 

目前,微服务以Spring Cloud开发为代表,选取的是 Rest通信接口格式,后续的微服框架可能更多,有些微服务支持更多的协议和数据格式。目前主流的是HTTP,属于同步消息通信模式,H5走websocket。 

当下的移动互联网时代大部分追求轻量级接口,目前的框架如Rest API、Java、Go还是node,都非常方便,可以直接在APP协议站基础上进行扩展。 

不同语言的REST框架基本由WEB框架改造,再加一层数据序列化反序列化即可满足大部分场景需求。因为对于绝大部分前端APP来说,数据格式基本是主要的那些格式,没有复杂的路由策略。早期已经具备了基础的接口开发框架,但是还不具备整体性复杂的架构层级的微服务架构风格。 

消息队列在早期分布式架构中经常使用,比较经典的是RabbitMQ兔子消息队、Kafka、RocketMQ火箭消息队,Kafka的消息并发量和吞吐量能达到百万级别。 

对于全新的微服加工来说,可能会存在几种协议,有同步、异步和两种形式并存,也有可能是使用APP协议或其他的TCP或者二进制等相关协议,这几种协议经典且各有所长。 

在物联网行业存在特殊情况,可能进行对接时候,设备可能还有自己的数据协议,但是每个分布式框架底层可能支持一种协议或者多种协议。 

 

相关文章
|
SQL 前端开发 关系型数据库
如何开发一套研发项目管理系统?(附架构图+流程图+代码参考)
研发项目管理系统助力企业实现需求、缺陷与变更的全流程管理,支持看板可视化、数据化决策与成本优化。系统以MVP模式快速上线,核心功能包括需求看板、缺陷闭环、自动日报及关键指标分析,助力中小企业提升交付效率与协作质量。
1032 29
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
1580 2
Spring Boot 3.x 微服务架构实战指南
|
12月前
|
运维 监控 安全
公链开发中的高可用架构设计要点
本指南提供公链高可用架构的可复用流程与模板,涵盖目标拆解、先决条件、分步执行、故障排查及验收标准,结合跨链DApp与量化机器人案例,提升落地效率与系统稳定性。
|
供应链 监控 JavaScript
如何开发ERP(离散制造-MTO)系统中的库存管理板块(附架构图+流程图+代码参考)
本文详解MTO模式下ERP库存管理的关键作用,涵盖核心模块、业务流程、开发技巧与代码示例,助力制造企业提升库存周转率、降低缺货风险,实现高效精准的库存管控。
|
12月前
|
消息中间件 运维 监控
交易所开发核心架构拆解与流程图
本文系统解析交易所架构核心要素,从接入层到清算结算,结合系统流程图拆解各模块职责与协作机制。深入剖析撮合引擎、账本设计与风控逻辑,建立性能、可用性、安全性等多维评估标准,并提供可落地的流程图绘制、压测优化与进阶学习路径,助力构建高效、安全、可扩展的交易系统。(238字)
|
前端开发 API 定位技术
如何开发车辆管理系统中的用车申请板块(附架构图+流程图+代码参考)
本文详细解析了如何将传统纸质车辆管理流程数字化,涵盖业务规则、审批流、调度决策及数据留痕等核心环节。内容包括用车申请模块的价值定位、系统架构设计、数据模型构建、前端表单实现及后端开发技巧,助力企业打造可落地、易扩展的车辆管理系统。
|
12月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
1202 7