Ошибка 500 на весеннем облачном шлюзе finishConnect(..) на Heroku

Я использую Eureka с весенней загрузкой £. 1 сервер, 1 шлюз и 2 API, на моем локальном хосте у меня нет проблем, но когда я развертываю его на Heroku, я не могу получить доступ к API через шлюз API. Сервер EUREKA обнаруживает все мои службы без проблем.

В журнале шлюза у меня ОШИБКА 500

2022-11-22T14:23:30.428847+00:00 app[web.1]: 2022-11-22 14:23:30.428  INFO 4 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
2022-11-22T14:23:30.666161+00:00 app[web.1]: 2022-11-22 14:23:30.665  INFO 4 --- [           main] DiscoveryClientOptionalArgsConfiguration : Eureka HTTP Client uses RestTemplate.
2022-11-22T14:23:31.365410+00:00 app[web.1]: 2022-11-22 14:23:31.365  WARN 4 --- [           main] iguration$LoadBalancerCaffeineWarnLogger : Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.
2022-11-22T14:23:31.391840+00:00 app[web.1]: 2022-11-22 14:23:31.391  INFO 4 --- [           main] o.s.c.n.eureka.InstanceInfoFactory       : Setting initial instance status as: STARTING
2022-11-22T14:23:31.467468+00:00 app[web.1]: 2022-11-22 14:23:31.465  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Initializing Eureka in region us-east-1
2022-11-22T14:23:31.473095+00:00 app[web.1]: 2022-11-22 14:23:31.472  INFO 4 --- [           main] c.n.d.s.r.aws.ConfigClusterResolver      : Resolving eureka endpoints via configuration
2022-11-22T14:23:31.498500+00:00 app[web.1]: 2022-11-22 14:23:31.498  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Disable delta property : false
2022-11-22T14:23:31.498507+00:00 app[web.1]: 2022-11-22 14:23:31.498  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Single vip registry refresh property : null
2022-11-22T14:23:31.498541+00:00 app[web.1]: 2022-11-22 14:23:31.498  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Force full registry fetch : false
2022-11-22T14:23:31.498575+00:00 app[web.1]: 2022-11-22 14:23:31.498  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Application is null : false
2022-11-22T14:23:31.498609+00:00 app[web.1]: 2022-11-22 14:23:31.498  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Registered Applications size is zero : true
2022-11-22T14:23:31.498651+00:00 app[web.1]: 2022-11-22 14:23:31.498  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Application version is -1: true
2022-11-22T14:23:31.498691+00:00 app[web.1]: 2022-11-22 14:23:31.498  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Getting all instance registry info from the eureka server
2022-11-22T14:23:32.651073+00:00 app[web.1]: 2022-11-22 14:23:32.650  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : The response status is 200
2022-11-22T14:23:32.657211+00:00 app[web.1]: 2022-11-22 14:23:32.656  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Starting heartbeat executor: renew interval is: 30
2022-11-22T14:23:32.661123+00:00 app[web.1]: 2022-11-22 14:23:32.660  INFO 4 --- [           main] c.n.discovery.InstanceInfoReplicator     : InstanceInfoReplicator onDemand update allowed rate per min is 4
2022-11-22T14:23:32.668470+00:00 app[web.1]: 2022-11-22 14:23:32.668  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Discovery Client initialized at timestamp 1669127012667 with initial instances count: 1
2022-11-22T14:23:32.670420+00:00 app[web.1]: 2022-11-22 14:23:32.670  INFO 4 --- [           main] o.s.c.n.e.s.EurekaServiceRegistry        : Registering application API-GATEWAY with eureka with status UP
2022-11-22T14:23:32.671101+00:00 app[web.1]: 2022-11-22 14:23:32.670  INFO 4 --- [           main] com.netflix.discovery.DiscoveryClient    : Saw local status change event StatusChangeEvent [timestamp=1669127012670, current=UP, previous=STARTING]
2022-11-22T14:23:32.673386+00:00 app[web.1]: 2022-11-22 14:23:32.673  INFO 4 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_API-GATEWAY/api-gateway:21401: registering service...
2022-11-22T14:23:32.751146+00:00 app[web.1]: 2022-11-22 14:23:32.750  INFO 4 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_API-GATEWAY/api-gateway:21401 - registration status: 204
2022-11-22T14:23:33.561901+00:00 heroku[web.1]: State changed from starting to up
2022-11-22T14:23:33.486111+00:00 app[web.1]: 2022-11-22 14:23:33.485  INFO 4 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 21401
2022-11-22T14:23:33.488877+00:00 app[web.1]: 2022-11-22 14:23:33.488  INFO 4 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 21401
2022-11-22T14:23:33.526112+00:00 app[web.1]: 2022-11-22 14:23:33.525  INFO 4 --- [           main] com.medhead.gateway.GatewayApplication   : Started GatewayApplication in 13.001 seconds (JVM running for 13.623)
2022-11-22T14:23:35.370016+00:00 heroku[router]: at=info method=GET path = "/" host=headmed-gateway.herokuapp.com request_id=cd66391f-2d15-4701-b0f9-c60c5c3f4b89 fwd = "92.158.60.103" dyno=web.1 connect=0ms service=146ms status=404 bytes=387 protocol=https
2022-11-22T14:24:32.698383+00:00 heroku[router]: at=info method=GET path = "/" host=headmed-gateway.herokuapp.com request_id=e5da2cfa-990f-4cab-ac75-b8e63ba6960e fwd = "92.158.60.103" dyno=web.1 connect=0ms service=11ms status=404 bytes=387 protocol=https
2022-11-22T14:24:48.125828+00:00 heroku[router]: at=info method=GET path = "/actuator/health" host=headmed-gateway.herokuapp.com request_id=84a74ade-2e24-4b00-a2ba-e87e23979557 fwd = "92.158.60.103" dyno=web.1 connect=0ms service=51ms status=200 bytes=133 protocol=https
2022-11-22T14:25:37.041666+00:00 heroku[router]: at=info method=GET path = "/patient-service/patients" host=headmed-gateway.herokuapp.com request_id=41c71d85-f335-494c-9b2d-119ee858a606 fwd = "92.158.60.103" dyno=web.1 connect=0ms service=223ms status=500 bytes=411 protocol=https
2022-11-22T14:25:37.038507+00:00 app[web.1]: 2022-11-22 14:25:37.037 ERROR 4 --- [or-http-epoll-8] a.w.r.e.AbstractErrorWebExceptionHandler : [1a0ff15a-4]  500 Server Error for HTTP GET "/patient-service/patients"
2022-11-22T14:25:37.038521+00:00 app[web.1]: 
2022-11-22T14:25:37.038522+00:00 app[web.1]: io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:6115
2022-11-22T14:25:37.038523+00:00 app[web.1]:    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
2022-11-22T14:25:37.038525+00:00 app[web.1]: Error has been observed at the following site(s):
2022-11-22T14:25:37.038527+00:00 app[web.1]:    *__checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
2022-11-22T14:25:37.038528+00:00 app[web.1]:    *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
2022-11-22T14:25:37.038529+00:00 app[web.1]:    *__checkpoint ⇢ HTTP GET "/patient-service/patients" [ExceptionHandlingWebHandler]
2022-11-22T14:25:37.038530+00:00 app[web.1]: Original Stack Trace:
2022-11-22T14:25:37.038530+00:00 app[web.1]: Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused
2022-11-22T14:25:37.038531+00:00 app[web.1]:    at io.netty.channel.unix.Errors.newConnectException0(Errors.java:155) ~[netty-transport-native-unix-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038531+00:00 app[web.1]:    at io.netty.channel.unix.Errors.handleConnectErrno(Errors.java:128) ~[netty-transport-native-unix-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038531+00:00 app[web.1]:    at io.netty.channel.unix.Socket.finishConnect(Socket.java:359) ~[netty-transport-native-unix-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038533+00:00 app[web.1]:    at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.doFinishConnect(AbstractEpollChannel.java:710) ~[netty-transport-classes-epoll-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038533+00:00 app[web.1]:    at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:687) ~[netty-transport-classes-epoll-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038534+00:00 app[web.1]:    at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:567) ~[netty-transport-classes-epoll-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038535+00:00 app[web.1]:    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:489) ~[netty-transport-classes-epoll-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038535+00:00 app[web.1]:    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) ~[netty-transport-classes-epoll-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038535+00:00 app[web.1]:    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038536+00:00 app[web.1]:    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038536+00:00 app[web.1]:    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.038536+00:00 app[web.1]:    at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
2022-11-22T14:25:37.038537+00:00 app[web.1]: 
2022-11-22T14:25:37.092716+00:00 app[web.1]: 2022-11-22 14:25:37.091 ERROR 4 --- [or-http-epoll-1] a.w.r.e.AbstractErrorWebExceptionHandler : [0a942c39-5]  500 Server Error for HTTP GET "/patient-service/patients"
2022-11-22T14:25:37.092717+00:00 app[web.1]: 
2022-11-22T14:25:37.092718+00:00 app[web.1]: io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:6115
2022-11-22T14:25:37.092719+00:00 app[web.1]:    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
2022-11-22T14:25:37.092720+00:00 app[web.1]: Error has been observed at the following site(s):
2022-11-22T14:25:37.092720+00:00 app[web.1]:    *__checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
2022-11-22T14:25:37.092721+00:00 app[web.1]:    *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
2022-11-22T14:25:37.092722+00:00 app[web.1]:    *__checkpoint ⇢ HTTP GET "/patient-service/patients" [ExceptionHandlingWebHandler]
2022-11-22T14:25:37.092722+00:00 app[web.1]: Original Stack Trace:
2022-11-22T14:25:37.092722+00:00 app[web.1]: Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused
2022-11-22T14:25:37.092723+00:00 app[web.1]:    at io.netty.channel.unix.Errors.newConnectException0(Errors.java:155) ~[netty-transport-native-unix-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092723+00:00 app[web.1]:    at io.netty.channel.unix.Errors.handleConnectErrno(Errors.java:128) ~[netty-transport-native-unix-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092724+00:00 app[web.1]:    at io.netty.channel.unix.Socket.finishConnect(Socket.java:359) ~[netty-transport-native-unix-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092725+00:00 app[web.1]:    at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.doFinishConnect(AbstractEpollChannel.java:710) ~[netty-transport-classes-epoll-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092725+00:00 app[web.1]:    at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:687) ~[netty-transport-classes-epoll-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092725+00:00 app[web.1]:    at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:567) ~[netty-transport-classes-epoll-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092726+00:00 app[web.1]:    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:489) ~[netty-transport-classes-epoll-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092726+00:00 app[web.1]:    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) ~[netty-transport-classes-epoll-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092726+00:00 app[web.1]:    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092727+00:00 app[web.1]:    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092727+00:00 app[web.1]:    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.84.Final.jar!/:4.1.84.Final]
2022-11-22T14:25:37.092727+00:00 app[web.1]:    at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
2022-11-22T14:25:37.092728+00:00 app[web.1]: 
2022-11-22T14:25:37.095360+00:00 heroku[router]: at=info method=GET path = "/patient-service/patients" host=headmed-gateway.herokuapp.com request_id=6657476d-7856-4a93-8243-5f5fb56b2921 fwd = "92.158.60.103" dyno=web.1 connect=0ms service=14ms status=500 bytes=411 protocol=https

это моя прикладная поддержка для моего и микросервиса

application-heroku.yml (СЕРВЕР ЭВРИКА)

server:
  port: ${PORT:8761}
spring:
  application:
    name: eureka-server
  cloud:
    service-registry:
      auto-registration:
        enabled: false
eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
management:
  endpoints:
    web:
      exposure:
        include: "*"

приложение-heroku.yml (ШЛЮЗ)

server:
  port: ${PORT:8082}
  forward-headers-strategy: framework
spring:
  application:
    name: api-gateway
  cloud:
    discovery:
      enabled: true
    gateway:
      globalcors:
        add-to-simple-url-handler-mapping: true
      metrics:
        enabled: true
      discovery:
        locator:
          enabled: true
          lower-case-service-id: true
      routes:
        - id: patient-service
          uri: lb://patient-service
          predicates:
            - Path=/patients/**
          filters:
            - RewritePath=/patients(?<segment>/?.*), $\{segment}
eureka:
  client:
    service-url:
      defaultZone: https://headmed-eureka.herokuapp.com/eureka/
  instance:
    hostname: localhost
    nonSecurePort: 80

приложение-heroku.yml (МИКРОСЕРВИС)

server:
  port: ${PORT:8080}
  forward-headers-strategy: none
eureka:
  client:
    enabled: true
    service-url:
      defaultZone:  https://headmed-eureka.herokuapp.com/eureka/
  instance:
    hostname: localhost
    instance-id: ${spring.application.name}:${random.uuid}
spring:
  application:
    name: patient-service
  datasource:
    url: jdbc:h2:mem:patient;
    username: sa
    password: password
    driverClassName: org.h2.Driver
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect
    show-sql: true
    defer-datasource-initialization: true
    hibernate:
      ddl-auto: create-drop
    generate-ddl: true
    database: h2
  sql:
    init:
      mode: always
  h2:
    console:
      enabled: true
      path: /h2
  data:
    jpa:
      repositories:
        bootstrap-mode: default
springdoc:
  swagger-ui:
    path: /swagger-ui

Я думаю, что проблема находится на Heroku, но я понятия не имею, как ее обойти.

Я проверил использование nonSecurePort, но он не работает.

Connection refused: localhost/127.0.0.1:6115 можете ли вы подключиться к этому вручную
spencergibb 22.11.2022 16:14

@spencergibb нет, я не могу это проверить, это на героку.

Dandy 22.11.2022 16:22

@spencergibb это порт микросервиса

Dandy 22.11.2022 16:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
3
239
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я решил проблему, добавив.

non-secure-port-enabled: true
secure-port-enabled: false
non-secure-port: 80
secure-port: 443

Другие вопросы по теме