美文网首页
云原生 远程通信

云原生 远程通信

作者: ands999 | 来源:发表于2020-05-18 08:25 被阅读0次
TCP/IP模型 与 OSI模型
TCP/IP模型 协议 OSI模型
应用层 HTTP、FTP、 应用层
Telnet、NTP、 表示层
DHCP、PING 会话层
传输层 TCP、UDP 传输层
网络层 IP、ARP、ICMP、IGMP 网络层
网络接口层 Ethernet 数据链路层
物理层
TCP三次握手
客户端 服务端
SYN(seq=x) >
< SYN-ACK ack=x+1,seq=y
ACK ack=y+1,seq=x+1 >
发送数据 >

TCP正确性、顺序性和不可重复性。
UDP不能保证报文能否到达目的地,到达目的地的时间是否正确,传输的内容是否正确。
HTTP2的多路复用机制(数据流方式)运行通过单连接同时发起多个请求和响应。将请求和响应划分为帧。
Socket是接口。

IO模型

阻塞与非阻塞(调用方法),同步与异步(针对内核)。
java目前不支持异步IO。
BIO(一连接一线程)
NIO(事件模型的异步通知,buffer、channel、selector),reactor模式。
AIO,异步IO,proactor模式。

文本序列化

JSON,jackson、gson

二进制序列化

java原生序列化,serializable接口,性能低。
kryo,高效java序列化框架。
protobuf,跨平台跨语言的。

远程调用

RMI,性能低、灵活性差
gRPC ,使用http2进行网络通信,并将protobuf作为序列化工具。是面向服务端和移动端。具有双向流、请求压缩、单路复用功能。

各类一体化远程调用框架对比
远程调用框架 通信协议 序列化协议 性能 异构语言 代码生成 服务治理
rmi tcp 二进制 一般 不支持 不需要
gRPC http2 二进制 支持 需要
thrift tcp 二进制 支持 需要
hession http1.1 二进制 支持 不需要
http+restful http 文本 支持 不需要
dubbo 可选 可选 不支持 不需要
参考

《未来架构--从服务化到云原生 - 张亮》

相关文章

网友评论

      本文标题:云原生 远程通信

      本文链接:https://www.haomeiwen.com/subject/bnblohtx.html