使用 consul 启动 jHipster 微服务时出错

Posted

技术标签:

【中文标题】使用 consul 启动 jHipster 微服务时出错【英文标题】:Error starting jHipster Microservices with consul 【发布时间】:2017-07-12 05:44:31 【问题描述】:

我正在尝试使用此tutorial 构建示例微服务应用程序。 Jhipster 版本是 4.0.6 所以我创建了网关、服务并使用这个命令启动了领事:

docker-compose -f src/main/docker/consul.yml up

来自我的网关目录。 但是Spring Boot启动时出现错误,日志如下:

2017-02-22 11:52:25.679 ERROR 3168 --- [  restartedMain] o.s.c.c.c.ConsulPropertySourceLocator    : Fail fast is set and there was an error reading configuration from consul.

2017-02-22 11:52:32.491  WARN 3168 --- [  restartedMain] o.s.boot.SpringApplication               : Error handling failed (ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@2a5b2096: startup date [Thu Jan 01 03:00:00 AST 1970]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@5108df79)
com.ecwid.consul.transport.TransportException: java.net.ConnectException: Connection refused: connect

您能帮忙解决这个问题吗?

更新: 我发现该应用程序尝试在 staptup 上向 URL 发出 GET 请求:

http://localhost:8500/v1/kv/config/armory,dev/?recurse&token=

但 Consul K/V 存储中存储的唯一数据是:

KEY: config/application/data

VALUE:
configserver:
    name: Docker Consul Service
    status: Connected to Consul Server running in Docker

jhipster:
    security:
        authentication:
            jwt:
                secret: my-secret-token-to-change-in-production

【问题讨论】:

【参考方案1】:

如果 consul 在 dev 配置文件中运行,则必须将应用程序 yaml 配置复制到您的 consul 实例 as explained in the doc 到 central-server-config 目录中;如果 consul 在 prod 配置文件中运行,则必须复制到其 git repo 中。

因此,假设您的应用名为“armory”,您应该将您的 src/main/resources/config/application.yml 复制到 armory.yml 以及每个配置文件(例如,application-dev.ymlarmory-dev.yml

【讨论】:

非常感谢!您能否协助将默认的领事端口从“localhost”覆盖到 docker 的端口?我应该在哪里更改它? 不知道,你查看过你应用的 bootstrap.yml 吗? 我也遇到了同样的问题,@Tolledo 你找到解决方案了吗? @Martin,是的。只需使用 DockerToolbox 重新安装 docker,问题就会消失。

以上是关于使用 consul 启动 jHipster 微服务时出错的主要内容,如果未能解决你的问题,请参考以下文章

JHipster技术栈定制 - 基于UAA的微服务之间安全调用

微服务-SpringCloud学习系列:注册中心Consul

JHipster创建微服务及相关微服务架构组件介绍

JHipster - 在 AWS Beanstalk 中发布部署 Jhipster 注册表

落地微服务架构v2.0

微服务杂记