我一直在尝试使用Spring Cloud Gateway,Eureka,配置服务和一些微服务创建docker-compose堆栈。这些服务将在它们自己的裸露端口上启动并运行,而config服务运行,而Eureka注册这些服务。但是我无法让Spring Cloud Gateway正常工作。
服务正确启动(或者至少日志中没有错误),当我远程访问容器时,我可以请求我要调用的服务,但是如果我尝试通过配置的路由来请求它我收到404。
我的网关配置(为方便起见,我将配置服务配置和bootstrap.yml结合在一起):
spring:
application:
name: gateway-service
cloud:
config:
uri: http://config-service:8080
eureka:
client:
serviceUrl:
defaultZone: http://discovery-service:8061/eureka/
logging:
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} ${LOG_LEVEL_PATTERN:-%5p} %m%n"
spring:
cloud:
gateway:
routes:
- id: employee-service
predicates:
- "Path=/employee/**"
filters:
- StripPrefix=1
uri: "http://employee-service:8080"
我敢肯定,我只是误解了一些琐碎的事情,而我距成功仅一步之遥,但是...我只是找不到它。
我希望发生的事情:
我的容器:
0.0.0.0:8080->8080/tcp, 8088/tcp employee-app_gateway-service_1
8088/tcp, 0.0.0.0:5082->5005/tcp, 0.0.0.0:8082->8080/tcp employee-app_employee-service_1
8088/tcp, 0.0.0.0:8011->8061/tcp employee-app_discovery-service_1
8088/tcp, 0.0.0.0:8012->8080/tcp employee-app_config-service_1
答案 0 :(得分:0)
这必须是我最可耻的第8层问题之一。 boostrap.yml!= bootstrap.yml。我确实花了三天时间。我不确定我是对自己生气还是羞愧。希望你能对我笑:-)