之前说过 不管是client side discovery service还是sever side discovery service. API gateway一定是要有的。不管这个Load balancer和service registery是不是结合在一起(Ribbon+Eureka, Amazon ELB)。
但是这个结论是不是正确的呢?
首先 我们知道aws lambda, API gateway和amazon ELB都能integrate with lambda.
然后 我们看看API gateway和load balancer到底有什么区别?
API gateway的功能比较多。除了两者都能把对应的rest api的请求对应的相应的微服务外。API gateway还有:
可是 同样 你也要为这些功能付出额外的花费。
但是 上面的功能 比如这个验证功能和supprt request功能 不得不用。
所以 就一定要用api gateway了?
首先 我们知道 api gateway和loadbalancer都能manage and balance out network traffic. 但是两者方式不同。api gateway能够直接把request direct到固定的reource(EC2 server or lambda function)中。
而且从两者的名字可以看出来 其实两者并不冲突。gateway就像是一个网关 负责引导所有的requests去相应的地方。load balancer是为了让引入的request 能够较为均衡的引导到不同的服务器里面。
总结:
因为我们的确是需要API Gateway的验证 授权和mapping功能 所以我们还是要保留API gateway 所以现在就是API gateway + ELB/(Ribbon+Eureka)
API Gateway vs Application Load Balancer—Technical Details
Saving Money By Replacing API Gateway With Application Load Balancer’s Lambda Integration
can-api-gateway-act-load-balancer