Zuul не пересылает запросы другим микро-сервисам - PullRequest
1 голос
/ 05 апреля 2019

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

Когда я пытаюсь ударить, используя zuul proxy, он получает код состояния 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: '*'

Пока консольный журнал

маршрут соответствует = ZuulRoute {id = 'account', path = '/ account / **', serviceId = 'ACCOUNT', url = 'http://192.168.0.62:8081/', stripPrefix = false, retryable = null, sensHeaders = [], 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": "*"
}

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

спасибо.

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

1 Ответ

1 голос
/ 10 апреля 2019

Как я вижу, вы настроили 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>

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

...