我正在尝试将我的微服务部署到Heroku,但一直没有成功。首先,我创建了一个用于服务注册中心(eureka)的应用程序,并进行了以下配置:
spring:
application:
name: eureka
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
下一步,我部署应用程序,部署后的应用程序的URL类似于 https://eureka.herokuapp.com。 我会使用此URL来配置我的其他应用程序,例如网关和业务服务。
以下是我的网关配置示例:
spring:
application:
name: gateway
server:
port: 8081
eureka:
client:
healthcheck:
enabled: true
serviceUrl:
defaultZone: https://eureka.herokuapp.com/eureka/
我在我的用户服务中使用了相同的配置,只是应用程序名称不同(user-service)。当我访问https://gateway.herokuapp.com/user-service/user
时,我无法收到任何响应。在网关应用程序的heroku日志中,我可以看到由于用户服务超时而导致的异常,但我不理解,因为当我直接调用https://user.herokuapp.com/user
时,我会得到响应。
我还发现我的eureka仪表板没有注册副本,我不确定是否可以,你能告诉我我做错了什么吗?谢谢。
网关应用程序的错误日志:
2019-12-01T19:53:29.503419+00:00 heroku[router]: at=info method=GET path="/user-service/user" host=gateway.herokuapp.com request_id=7818f5eb-34af-47f9-94db-7dc4f9609c31 fwd="86.49.253.78" dyno=web.1 connect=0ms service=8110ms status=500 bytes=465 protocol=https