『互联 架构』软件架构-RPC 络传输原理与实现

回顾下:普通RPC框架需要做的:服务的注册,发现,暴露。服务注册包括:调用模块(负载均衡,容错,透明)。RPC协议包括(序列化,编码,传输),其实透明化的远程调用。RPC 文的格式:请求行,请求头和请求体。RPC协议相比HTTP要更加精简,传输的量要更少。今天主要说说传输这块,其实也是最复杂的,说这个意义,感觉只是使用dubbo,其实对开发者的意义不是很大,大家不需要了解底层的业务传输,但是如果要设计一个消息服务器,这可是一般的开发人员可以搞定的。必须有过一定的经验,参考过别人的一个远程实现。了解了这些对dubbo的性能调优和配置有更深层的认识,而不是dubbo,api文档里面的一些配置

如果想搞定传输模块的稳定和性能,必须要先了解RPC协议的组成,一直强调模块的拆分,模块内在进行模块的拆分,也就是一点一点的进行组成,像积木一样。

  • 服务端线程协作

1.IO线程:

  • request 流读取
  • request 解码
  • 提交业务处理任务

2.业务线程:

  • 业务方法执行
  • response 解码
  • 回写结果至channel

『互联 架构』软件架构-RPC 络传输原理与实现
  • 线程池
    1.fixed:固定线程池,此线程池启动时即创建固定大小的线程数,不做任何伸缩。
    2.cached:缓存线程池,此线程池可伸缩,线程空闲一分钟后回收,新请求重新创建线程。
    3.Limited:有限线程池,此线程池一直增长,直到上限,增长后不收缩。

PS:上边的如果能搞明白,不是大神,也一只脚踏进了大神的行列。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月4日
下一篇 2021年6月4日

相关推荐