API Gateway 是客户端与内部微服务之间的中介服务。它聚合调用,管理路由和授权,应用安全和限制策略,并转换和代理请求。
API Gateway的作用是隐藏服务的内部结构,统一交互。这有助于降低耦合,提高前端开发速度,并提供对访问和日志的集中控制。
以下是将nginx配置为最简单的API Gateway的示例:
server { listen 80; location /user/ { proxy_pass http://localhost:8081/; } location /order/ { proxy_pass http://localhost:8082/; } }
关键特性:
一个服务能否绕过API Gateway调用另一个服务?
内部服务可以在私有场景中使用直接调用,但对于外部客户来说,API Gateway是主要的访问方式。
API Gateway是否是单点故障?
是的,如果不配置集群和负载平衡的话。重要的是启动多个实例并使用负载均衡器。
API Gateway可以缓存响应吗?
可以,先进的网关可以缓存GET请求,从而降低服务负载并加快数据响应。以下是Kong中配置缓存的示例:
plugins: - name: proxy-cache config: strategy: memory content_type: [application/json] cache_ttl: 300