微服务的网络架构

微服务架构中,每个功能模块仅负责一小块职责,微服务之间通过HTTP/TCP交互。

微服务之间的网络交互,需要限流、熔断、服务发现等等服务治理的功能,每个微服务内部都要集成相关的lib代码。

image.png

业务代码开发过程中,一般使用框架来实现上述的功能,比如spring cloud,提供了hystrix、Eureka等熔断、服务发现等功能。

service mesh: v1

kubernetes时代来了,我们把微服务部署在一个个的Pod中。

服务之间的网络交互,通过各自pod内的sidecar container来实现,sidecar内集成了服务熔断、服务发现的功能。

image.png

这样业务代码的开发,不必再关注服务熔断、服务发现等功能,专注于实现业务即可。

服务之间的交互,交由sidecar之间进行,最终所有的服务组成如下的一个“网格”:

image.png

service mesh: v2

sevice mesh的v1是通过sidecar代理实现服务之间的交互,service mesh v2则引入了集中的控制面管理,lstio是service mesh v2的典型代表。

image.png

control Plane可以进行全局的流量管控、路由下发,从control Plane的角度看,网络的流量变成如下的样子:

image.png

参考

1.https://zhuanlan.zhihu.com/p/...
2.https://philcalcado.com/2017/...


a朋
63 声望38 粉丝

引用和评论

0 条评论