微服务的通信方式——网关 & RPC & Sidecar

微服务的通信方式——网关 & RPC & Sidecar_第1张图片

 微服务的通信方式——网关 & RPC & Sidecar_第2张图片

 微服务的通信方式——网关 & RPC & Sidecar_第3张图片

 微服务的通信方式——网关 & RPC & Sidecar_第4张图片

 

可以简单理解为client 调用 server端函数

微服务的通信方式——网关 & RPC & Sidecar_第5张图片

微服务的通信方式——网关 & RPC & Sidecar_第6张图片

微服务的通信方式——网关 & RPC & Sidecar_第7张图片微服务的通信方式——网关 & RPC & Sidecar_第8张图片 

微服务的通信方式——网关 & RPC & Sidecar_第9张图片

微服务的通信方式——网关 & RPC & Sidecar_第10张图片

 

bthread是一个线程库

N指的是系统级的线程,也叫bthread的一个worker线程

M是指用户态的一个线程

bthread中有两种调度策略,

第一种是worker内部的调度,比如第一个圈中两个线程不停的循环调动,这种策略locality比较好

第二种是worker之间的调度, 比如某一个worker被其中一个线程阻塞了,可以把其中的线程调度到别的worker中去执行,这种策略提升scalability

微服务的通信方式——网关 & RPC & Sidecar_第11张图片 绿色的代表用户可以扩展的一些策略,黄色代表框架,基本不需要改动 

最底层是socket层,负责所有数据的读写,支持加密,RDMA

倒数第二层是协议层,分为三层,首先是协议格式,下来是压缩层吗,下来是认证层(非必须)

再往上是client 和 server,channel可以分组分库

数据从client端,从上往下流动,再从server端 从下往上流动。

微服务的通信方式——网关 & RPC & Sidecar_第12张图片

 

  

你可能感兴趣的:(网络,nginx)