rpc 远程过程调用
rpc与http的区别
1.性能高 2.使用复杂 3.可扩展性高 4 跨语言支持 5.可以使用服务发现,负载均衡,熔断降级
rpc远程调用,必须传输数据,需要序列化。
序列化有多种方式:
jdk原生序列化,使用简单,缺点 占用较多存储空间 不支持跨语言
json 优点都有,缺点序列化/反序列化性能低
hessian 需要额外的依赖,且需手动处理引用关系问题
protobuf 非常高序列化性能,缺点需要额外依赖,数据格式不直观,不适合动态扩展性高的场景
多路复用 reactor 模型,用单线程处理多个socket请求,获取到的socket先进行注册,交由handle处理。客户端有特定行为,会触发事件。服务端遍历事件,进行处理。