InSpring Boot微服务架构我们通常通过eureka.client.register-with-eureka=true
,eureka.client.fetch-registry=true
和eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka
将每个微服务(它的许多实例)注册到Eureka服务器。因此Eureka充当这些服务的服务注册中心(服务名称、主机名及其IP)。
spring:
application:
name: api-gateway
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/users/**
- id: order-service
uri: lb://department-service
predicates:
- Path=/departments/**
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
在API Gateway中启用发现定位器后,除非绝对需要,否则您不必手动配置路由。
API Gateway知道将传入请求路由到哪个Eureka Service的方式如下:
假设,订单服务运行在http://localhost:8080上API网关运行在http://localhost:8082上Eureka订单服务的服务名称- order-service
然后,如果订单服务getOrders端点:http://localhost:8080/orders,那么发现定位器启用后,请求需要通过API网关通过以下URL路由:https://localhost:8082/order-service/orders,即{ApiGatewayHost}/{EurekaServiceId}/{ActualEndpoint}.
Eureka Server注册网关