主要观点:
- 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=server
,server.port=8761
,eureka.client.register-with-eureka=false
,eureka.client.fetch-registry=false
。 - 微服务的配置中,需指定
spring.application.name
、server.port
和eureka.client.service-url.defaultZone
。 - API 网关的配置中,
spring.cloud.gateway.server.webflux.discovery.locator.enabled=true
,spring.cloud.gateway.server.webflux.discovery.locator.lower-case-service-id=true
,通过spring.cloud.gateway.routes
配置路由规则。 - 常见错误的解决方法,如服务未找到要检查注册名称,路径模式要用
/service-name/**
等。 - 后续扩展步骤的具体内容,如添加 Spring Security 可实现认证等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。