Zuul не пересылает запросы другим микросервисам

Я использую микросервисы с весенней загрузкой. Я настроил eureka, zuul proxy и еще один микросервис (аккаунт). Если я звоню из аккаунта напрямую, он работает нормально. аккаунт и сервер zuul отображаются на eureka.

Когда я пытаюсь использовать прокси-сервер zuul, он получает код состояния 200OK, но не получает никакого результата

Ниже моя конфигурация для zuul

Zuul.yml

server:
  port: 8076
eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://localhost:8078/eureka/
  instance:
    hostname: localhost
    health-check-url-path: /actuator/health
    status-page-url-path: /actuator/info
logging:
  level:
    com.netflix.discovery: 'ON'
    org.springframework.cloud: DEBUG
zuul:
  ignoredServices: '*'
  routes:
    account:
      serviceId: ACCOUNT
      url: http://192.168.0.62:8081/
      stripPrefix: false
      predicate:
      - Path=/accounts/**
  debug:
    requests: true
management:
  security:
    enabled: false
  endpoints:
    web:
      exposure:
        include: '*'

Журнал консоли на данный момент

route matched = ZuulRoute {id = 'account', path = '/ account / **', serviceId = 'ACCOUNT', url = 'http://192.168.0.62:8081/ ', stripPrefix = false, retryable = null, sensitiveHeaders = [], customSensitiveHeaders = false,} ------------- -------------- Сопоставлено с org.springframework.cloud.netflix.zuul.web.ZuulController@7bb67520

журнал привода / env

"zuul.ignoredServices": {
"value": "*"
},
"zuul.routes.account.serviceId": {
"value": "ACCOUNT"
},
"zuul.routes.account.url": {
"value": "http://192.168.0.62:8081/"
},
"zuul.routes.account.stripPrefix": {
"value": false
},
"zuul.routes.account.predicate[0]": {
"value": "Path=/accounts/**"
},
"zuul.debug.requests": {
"value": true
},
"management.security.enabled": {
"value": false
},
"management.endpoints.web.exposure.include": {
"value": "*"
}

Я не могу получить отсюда ничего, если что-то не так. Пожалуйста, проверьте и дайте мне знать. любая помощь будет полезна

благодаря.

Если потребуется дополнительная информация, дайте мне знать.


person user_xyz.LOL    schedule 05.04.2019    source источник


Ответы (1)


Как я вижу, вы настроили Eureka, но используете ее неправильно. Сначала в zuul yaml у вас есть

eureka:
  client:
    registerWithEureka: true

Вам не нужно регистрировать свое приложение zuul в eureka, поскольку вы напрямую получаете доступ к шлюзу zuul, ни одна служба не будет пытаться найти и достичь вашего шлюза.

потом

account:
  serviceId: ACCOUNT
  url: http://192.168.0.62:8081/
  stripPrefix: false
  predicate:
  - Path=/accounts/**

если у вас есть обнаружение служб, вам не нужны url свойство и predicate: - Path, попробуйте:

account:
  serviceId: <YOUR_ACCOUNT_SERVICE_ID>
  stripPrefix: false
  path: /account/**

по умолчанию serviceId:

spring:
  application:
    name: <YOUR_ACCOUNT_SERVICE_ID>

проверьте мой ответ здесь

person Milenko Jevremovic    schedule 10.04.2019