微服务的网络架构
微服务架构中,每个功能模块仅负责一小块职责,微服务之间通过HTTP/TCP交互。
微服务之间的网络交互,需要限流、熔断、服务发现等等服务治理的功能,每个微服务内部都要集成相关的lib代码。
业务代码开发过程中,一般使用框架来实现上述的功能,比如spring cloud,提供了hystrix、Eureka等熔断、服务发现等功能。
service mesh: v1
kubernetes时代来了,我们把微服务部署在一个个的Pod中。
服务之间的网络交互,通过各自pod内的sidecar container来实现,sidecar内集成了服务熔断、服务发现的功能。
这样业务代码的开发,不必再关注服务熔断、服务发现等功能,专注于实现业务即可。
服务之间的交互,交由sidecar之间进行,最终所有的服务组成如下的一个“网格”:
service mesh: v2
sevice mesh的v1是通过sidecar代理实现服务之间的交互,service mesh v2则引入了集中的控制面管理,lstio是service mesh v2的典型代表。
control Plane可以进行全局的流量管控、路由下发,从control Plane的角度看,网络的流量变成如下的样子:
参考
1.https://zhuanlan.zhihu.com/p/...
2.https://philcalcado.com/2017/...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。