API 网关 - zilor-net/eShopOnContainers-CN-Wiki GitHub Wiki
eShopOnContainer 使用了四个API网关,实现了面向前端的后端(BFF)模式。
总体架构如下图所示:
上图是在启用 Service Mesh 的情况下在 Kubernetes 上运行 eShopOnContainers 时的架构。
如果 Service Mesh 被禁用,所有的“Linkerd”容器都不存在,如果运行在 Kubernetes 之外,“Ingress控制器”不存在,你可以直接访问API网关。
在这个架构中,“eShop Ingress”栏中的四个蓝框就是四个 BFF。
目前它们是通过Envoy实现的。每个BFF为其客户提供一个独特的端点,然后将转发调用到特定的微服务或自定义聚合器。
需要强调的是:
- BFF到微服务和聚合器之间的通信是 HTTP/REST。
- 聚合器和微服务之间的通信是gRPC。
这种情况在未来可能会改变,具体来说就是,将 BFF 到微服务和聚合器的通信使用 gRPC,同时保持 BFF 到客户端的通信使用 HTTP/REST 。