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

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

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

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

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

课程地址:https://developer.aliyun.com/learning/course/60/detail/1109?spm=a2c6h.21258778.0.0.72ae43db9RXbsI

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java?spm=a2c6h.21110250.J_5703890090.6.700e3c67EjOBeJ


微服务架构常用RPC协议



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

1微服务的消息通信模式 

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

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

image.png 

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

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

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

 

 

二、经典的RPC协议  

image.png 

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

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

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

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

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

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

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

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

 

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

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

image.png 

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

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

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

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

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

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

 

相关文章
|
2月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
58 0
|
2月前
|
消息中间件 Cloud Native Java
【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驱动架构(MDA)解析,实现异步处理与解耦合
【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驱动架构(MDA)解析,实现异步处理与解耦合
|
2月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
179 0
|
2月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
115 0
|
7天前
|
负载均衡 Java 开发者
Spring Cloud:一文读懂其原理与架构
Spring Cloud 是一套微服务解决方案,它整合了Netflix公司的多个开源框架,简化了分布式系统开发。Spring Cloud 提供了服务注册与发现、配置中心、消息总线、负载均衡、熔断机制等工具,让开发者可以快速地构建一些常见的微服务架构。
|
8天前
|
Java Docker 微服务
|
8天前
|
安全 Java 数据安全/隐私保护
Spring Boot优雅实现多租户架构:概念与实战
【4月更文挑战第29天】在多租户系统中,一个应用实例服务于多个租户,每个租户享有独立的数据视图,而应用的基础设施被共享。这样的架构不仅优化了资源使用,还能降低维护和运营成本。本文将详细介绍如何在Spring Boot中实现多租户架构,并提供具体的实战案例。
32 2
|
9天前
|
消息中间件 Java RocketMQ
Spring Cloud RocketMQ:构建可靠消息驱动的微服务架构
【4月更文挑战第28天】消息队列在微服务架构中扮演着至关重要的角色,能够实现服务之间的解耦、异步通信以及数据分发。Spring Cloud RocketMQ作为Apache RocketMQ的Spring Cloud集成,为微服务架构提供了可靠的消息传输机制。
23 1
|
20天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
29天前
|
监控 负载均衡 Java
深入探究Java微服务架构:Spring Cloud概论
**摘要:** 本文深入探讨了Java微服务架构中的Spring Cloud,解释了微服务架构如何解决传统单体架构的局限性,如松耦合、独立部署、可伸缩性和容错性。Spring Cloud作为一个基于Spring Boot的开源框架,提供了服务注册与发现、负载均衡、断路器、配置中心、API网关等组件,简化了微服务的开发、部署和管理。文章详细介绍了Spring Cloud的核心模块,如Eureka、Ribbon、Hystrix、Config、Zuul和Sleuth,并通过一个电商微服务系统的实战案例展示了如何使用Spring Cloud构建微服务应用。
103533 9