如何使用 Spring Cloud Gateway 和 Eureka 构建一个真正的 API 网关

主要观点:

  • API 网关在微服务架构中很重要,构建一个实用、安全、可扩展且服务感知的 API 网关并非易事。
  • 微服务架构中存在诸多问题,如系统如何路由流量、前端如何调用、服务如何发现等,答案是 API 网关 + 服务发现。
  • 介绍了使用 Spring Cloud Gateway 和 Eureka 构建全功能 API 网关的教程,包括构建 Eureka 服务器、创建两个微服务以及创建 API 网关等步骤。
  • 说明了 API 网关的作用,如隐藏内部服务 URL、进行服务发现、路由请求、集中管理安全等。
  • 列出了常见错误及解决方法,如服务未找到、路径模式错误等。
  • 提出了后续可能的扩展步骤,如添加 Spring Security + JWT 认证等。

关键信息:

  • 使用的技术:Spring Cloud Gateway 作为 API 网关,Netflix Eureka 进行服务发现,Spring Boot 构建微服务,Maven 为构建工具。
  • 具体步骤:先构建 Eureka 服务器,再创建两个微服务并注册到 Eureka,最后创建 API 网关并进行路由配置。
  • 常见错误:服务未注册、路径模式错误、服务 ID 大小写不匹配、服务未运行等。
  • 后续扩展:添加 Spring Security + JWT 认证、电路断路器、使用 Docker 和 Docker Compose、添加配置服务器等。

重要细节:

  • 在 Eureka 服务器的配置中,spring.application.name=serverserver.port=8761eureka.client.register-with-eureka=falseeureka.client.fetch-registry=false
  • 微服务的配置中,需指定spring.application.nameserver.porteureka.client.service-url.defaultZone
  • API 网关的配置中,spring.cloud.gateway.server.webflux.discovery.locator.enabled=truespring.cloud.gateway.server.webflux.discovery.locator.lower-case-service-id=true,通过spring.cloud.gateway.routes配置路由规则。
  • 常见错误的解决方法,如服务未找到要检查注册名称,路径模式要用/service-name/**等。
  • 后续扩展步骤的具体内容,如添加 Spring Security 可实现认证等。
阅读 291
0 条评论