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

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 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或者二进制等相关协议这几种协议经典且各有所长 

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

 

相关文章
|
19天前
|
数据采集 监控 前端开发
二级公立医院绩效考核系统源码,B/S架构,前后端分别基于Spring Boot和Avue框架
医院绩效管理系统通过与HIS系统的无缝对接,实现数据网络化采集、评价结果透明化管理及奖金分配自动化生成。系统涵盖科室和个人绩效考核、医疗质量考核、数据采集、绩效工资核算、收支核算、工作量统计、单项奖惩等功能,提升绩效评估的全面性、准确性和公正性。技术栈采用B/S架构,前后端分别基于Spring Boot和Avue框架。
|
2月前
|
Cloud Native Java 对象存储
面向未来的架构设计:Spring Cloud和Netflix OSS在云原生环境下的发展趋势
展望未来,随着5G、边缘计算等新技术的兴起,微服务架构的设计理念将会更加深入人心,Spring Cloud和Netflix OSS也将继续引领技术潮流,为企业带来更为高效、灵活且强大的解决方案。无论是对于初创公司还是大型企业而言,掌握这些前沿技术都将是在激烈市场竞争中脱颖而出的关键所在。
62 0
|
1月前
|
Java Spring
Spring底层架构源码解析(三)
Spring底层架构源码解析(三)
107 5
|
1月前
|
XML Java 数据格式
Spring底层架构源码解析(二)
Spring底层架构源码解析(二)
|
1月前
|
JSON 前端开发 Java
Spring Boot框架中的响应与分层解耦架构
在Spring Boot框架中,响应与分层解耦架构是两个核心概念,它们共同促进了应用程序的高效性、可维护性和可扩展性。
50 3
|
1月前
|
Cloud Native Java 对象存储
面向未来的架构设计:Spring Cloud和Netflix OSS在云原生环境下的发展趋势
面向未来的架构设计:Spring Cloud和Netflix OSS在云原生环境下的发展趋势
44 1
|
2月前
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
74 2
|
2月前
|
Cloud Native Java 对象存储
揭秘微服务架构之争:Spring Cloud与Netflix OSS巅峰对决,谁将称霸弹性云原生时代?
近年来,微服务架构成为企业应用的主流设计模式。本文对比了两大热门框架Spring Cloud和Netflix OSS,探讨其在构建弹性微服务方面的表现。Spring Cloud依托Spring Boot,提供全面的微服务解决方案,包括服务注册、配置管理和负载均衡等。Netflix OSS则由一系列可独立或组合使用的组件构成,如Eureka、Hystrix等。两者相比,Spring Cloud更易集成且功能完善,而Netflix OSS则需自行整合组件,但灵活性更高。实际上,两者也可结合使用以发挥各自优势。通过对两者的对比分析,希望为企业在微服务架构选型上提供参考。
53 0
|
3月前
|
消息中间件 Kafka Java
Spring 框架与 Kafka 联姻,竟引发软件世界的革命风暴!事件驱动架构震撼登场!
【8月更文挑战第31天】《Spring 框架与 Kafka 集成:实现事件驱动架构》介绍如何利用 Spring 框架的强大功能与 Kafka 分布式流平台结合,构建灵活且可扩展的事件驱动系统。通过添加 Spring Kafka 依赖并配置 Kafka 连接信息,可以轻松实现消息的生产和消费。文中详细展示了如何设置 `KafkaTemplate`、`ProducerFactory` 和 `ConsumerFactory`,并通过示例代码说明了生产者发送消息及消费者接收消息的具体实现。这一组合为构建高效可靠的分布式应用程序提供了有力支持。
108 0