当前位置:主页 > 查看内容

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

发布时间:2021-07-07 00:00| 位朋友查看

简介:哈喽各位同学们大家好呀 小编今天带着开发者学院中课程“微服务架构常用RPC协议”干货总结来了~一起学习新课程吧 课程链接以及图谱地址小编已经为大家指路了 搭配学习效果更佳 课程名称 微服务架构常用RPC协议 课程地址 https://developer.aliyun.com/learni……

哈喽各位同学们大家好呀 小编今天带着开发者学院中课程“微服务架构常用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加前端、小程序、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或者二进制等相关协议 这几种协议经典且各有所长。?

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

?


本文转自网络,原文链接:https://developer.aliyun.com/article/785096
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐