微服务的通信方式——网关 & RPC & Sidecar
可以简单理解为client 调用 server端函数
bthread是一个线程库
N指的是系统级的线程,也叫bthread的一个worker线程
M是指用户态的一个线程
bthread中有两种调度策略,
第一种是worker内部的调度,比如第一个圈中两个线程不停的循环调动,这种策略locality比较好
第二种是worker之间的调度, 比如某一个worker被其中一个线程阻塞了,可以把其中的线程调度到别的worker中去执行,这种策略提升scalability
绿色的代表用户可以扩展的一些策略,黄色代表框架,基本不需要改动
最底层是socket层,负责所有数据的读写,支持加密,RDMA
倒数第二层是协议层,分为三层,首先是协议格式,下来是压缩层吗,下来是认证层(非必须)
再往上是client 和 server,channel可以分组分库
数据从client端,从上往下流动,再从server端 从下往上流动。
上一篇:
Java架构师技术进阶路线图
下一篇:
protobuf_实现rpc的初步原理