假设您正在将微服务与Docker容器和Kubernetes一起使用。
如果你在微服务前面使用API网关(例如Azure API网关)来处理复合UI和身份验证,你还需要Service Mesh来处理服务发现和断路器吗?Azure API Gateway中有没有什么功能来处理这些挑战?怎么做?
发布于 2019-04-06 18:13:45
API网关只处理进入Kubernetes集群的入口点,例如,它向您的前端微服务发送请求。但是,在请求进入集群后,它什么也做不了。微服务之间可能仍然存在多个调用。您仍然希望验证这些请求的身份验证,您仍然希望确保服务之间存在断路器,等等。理论上,您可以确保所有微服务通过API网关相互调用,但我认为这不是您想要的。
简而言之:不,因为API网关只是一个入口点,所以任何服务到服务的通信都最好使用service Mesh来处理。
发布于 2019-04-07 02:06:06
API网关应用于OSI模型的第7层,或者您可以说管理来自外部网络的流量(有时也称为北/南流量),而服务网格应用于OSI模型的第4层或管理服务间通信(有时也称为东/西流量)。API网关功能的一些示例包括反向代理、负载平衡功能、身份验证和授权功能、IP列表功能、速率限制等。
另一方面,服务网格的工作方式类似于代理或侧车模式,它将服务的通信责任解耦,并处理其他问题,如断路器故障、超时故障、重试故障、服务发现等。
如果你碰巧使用Kubernetes和微服务,那么你可能想要探索其他解决方案,比如Ambassador + Istio或Kong,它既可以作为网关,也可以作为服务网格。
发布于 2019-04-06 23:40:58
您可以使用API网关来处理服务发现和断路器-但这将使其成为部署的中心点,即所有外部和内部呼叫都必须通过网关路由。
服务网格在每个服务旁边部署一个额外的边缘组件("sidecar"),使整个行为分布(但也更复杂)
根据您的特定需求,您可以使用一种、另一种、两种或不使用
https://stackoverflow.com/questions/55547886
复制相似问题