开发者学堂课程【Spring Cloud 微服务架构设计与开发实战 :微服务架构的常用 RPC 协议】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/60/detail/1109
微服务架构的常用 RPC 协议
内容介绍:
一、微服务常用的通讯模式
二、经典的 RPC 协议
三、微服务常用的通信协议
一、微服务常用的通信模式
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
三,微服务常用的通信协议
1.同步调用
l
HTTP/REST(synchronou
s)
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 消息队列(ActiveMQ,RabbitMQ,Kafka, RocketMQ, Notify, MetaQ)
消息队列,在早期,也是经常使用的。经典的一个就是 RabbitMQ,还有就是 RocketMQ 消息并发量可以达到百万级别。