1. 网关是怎么区分要管理的服务?
网关是通过 application.yml 里的路由配置 来区分的,比如:
yaml
spring:
cloud:
gateway:
routes:
# APP端网关的路由,只转发到APP相关服务
- id: app-search
uri: lb://leadnews-search
predicates:
- Path=/api/search/**
# 自媒体网关的路由,只转发到自媒体相关服务
- id: wemedia-news
uri: lb://leadnews-wemedia
predicates:
- Path=/api/wemedia/**
微服务里的拦截器是怎么生效的?
你在 search-service 里写的 WebMvcConfig:
java
运行
registry.addInterceptor(new AppTokenInterceptor()).addPathPatterns("/**");
- 这个拦截器只对进入
search-service的请求生效 - 不管请求是从哪个网关转过来的,只要进了
search-service,就会走这个拦截器 - 其他微服务(比如
user-service)有自己的WebMvcConfig,只拦截自己的请求