凤凰架构记01-通信

一.RPC源头与演进

1.进程之间通信方式

管道 Pipe :   两个进程之间传递少量字符流,字节流   ps -ef | grep java

信号 Signal:信号用于通知目标进程   kill -9 pid

信号量 Semaphore:两个进程之间的同步机制  wait() notify()

消息队列  Message Queue:进程间数据量较多的通信  进程向队列里添加消息,有读权限的进程可以消费队列

共享内存  Shared Memory: 多个进程访问同一快公共内存,往往与信号量等其他通信机制结合,达到进程间同步互斥的协调

套接字 Socket: 进程间通信,不同机器间进程通信,基于网络跨机器进程间通信

 

2.网络通信中三个基本问题

如何表示数据: 入参及返回值。不同指令集,不同操作系统,不同语言之间如何统一表示。 ——RPC的序列化及反序列化协议

如何传递数据:除了最底层TPC/UDP传输数据流之外,如何保证异常,超时,安全,认证,授权,事务等数据传递行为

如何确定方法:如何找到跨机器跨语言的程序的对应方法,进行访问

 

3.RPC通信的两个性能因素

序列化效率:序列化输出结果的容量越小,速度越快,效率越高

信息密度:使用传输协议的层次越高,有效荷载占总传输数据的比例越高,信息密度越低

 

4.现代RPC特性

更高层次能力:负载均衡,服务注册,观察检测

传输协议自定义:例如dubbo,默认支持Hessian2,dubbo协议,也可支持JSON,Protucol Buffers等其他序列化协议

 

posted @ 2024-05-16 16:23  六小扛把子  阅读(4)  评论(0编辑  收藏  举报