Consul

Consul概述

作为JHipster Registry的替代方案,您可以选择使用Hashicorp的数据中心管理解决方案 Consul。 与Eureka相比,它具有许多优点:

  • 在多节点群集中进行操作比在Eureka上容易。
  • 与可用性相比,它更注重一致性,因此可以更快地传播集群状态的变化。
  • Consul服务发现可以通过其DNS interfaceHTTP API轻松与现有应用程序进行互操作。

架构图

Diagram

入门

开始开发依赖Consul registry的应用程序,可以在Docker容器中启动Consul实例:

  • 运行docker-compose -f src/main/docker/consul.yml up以在dev模式下启动Consul服务器。然后,Consul将在Docker主机的端口8500上可用,因此如果它在您的计算机上运行,​​则应位http://127.0.0.1:8500/

您还可以使用Docker Compose子生成器为多个启用consul的应用程序生成docker配置。

使用Consul进行应用程序配置

如果您在生成JHipster微服务或网关应用程序时选择了Consul选项,则将自动配置它们以从Consul的Key/Value存储中检索其运行配置。

可以使用位于http://localhost:8500/v1/kv/上的UI或REST API来修改键/值(K/V)存储。但是,以这种方式进行的更改是临时的,在Consul服务器/群集关闭时将丢失。因此,为了帮助您轻松地与键/值存储进行交互并以简单的YAML文件形式管理您的配置,JHipster团队开发了一个小工具:consul-config-loader。从consul.yml docker-compose文件启动Consul时会自动配置consul-config-loader,但它也可以作为独立工具运行。 它可以在两种模式下运行:

  • dev模式,其中将从central-server-config目录中的YAML文件自动加载到Consul中。此外,对该目录的任何更改将立即与Consul同步。
  • prod模式,使用Git2Consul来设置Git存储库中包含的YAML文件,作为键/值存储的配置源。

请注意,与JHipster Registry一样,您的配置文件将需要命名为appname-profile.yml,其中appname和profile与您要配置的服务的应用程序名称和配置文件相对应。例如,在consulapp-prod.yml文件中添加属性将仅对以prod概要文件开头的名为consulapp的应用程序设置这些属性。此外,将为所有应用程序设置application.yml中定义的属性。