Consul
来源:JHipster |
时间:2018-11-04
|
|

替代JHipster Registry的另一种选择是使用Consul——一个来自Hashicorp的数据中心管理解决方案,相对于使用Eurake有以下几种优点:

  • 在多节点中比Eurake更容易出操作

  • 更倾向于一致性而不是可用性,所以集群的状态可以更快的传播

  • Consul的服务发现可以简单与现有服务进行交互(通过DNS或者HTTP API)

架构图

这里写图片描述

入门

开始开发依赖Consul的应用程序,你可以在docker上启动Consul实例:

  • 运行docker-compose -f src/main/docker/consul.yml up启动一个consul服务在dev模式下,consul将在你的Docker主机上的8500端口可用,因此你主机上的应该是http://127.0.0.1:8500/

应用中配置Consul

当你生成你的项目或者网关的时候选择了Consul选项,他们将会自动的从consul的键值存储中获取他们的配置.

存储的键值对可以通过界面或者REST API进行修改。但是这样的修改是临时性的,当Consul服务关闭时丢失。因此为了轻松的与键值存储交互以及将配置作为简单的yaml文件进行管理,JHipster提供了一个小工具consul-config-loader.当docker-compose通过consul.yml文件启动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文件将会把文件中的属性应用到consulapp应用的prod启动的模式中。此外,定义于application.yml文件定义的属性将会为所有的应用程序设置.


提交
查看更多评论
没有更多评论