简介
Consul-template是Consul的一个方扩展工具,通过监听Consul中的数据可以动态修改一些配置文件,大家比较热衷于应用在Nginx,HAProxy上动态配置健康状态下的客户端反向代理信息。GitHub上的文档比较详细,这里简单做个入门介绍。
关于配置中心不做过多介绍了。简单描述就是项目多了,管理起来就会比较复杂,比如在海量应用中要修改一部分应用中的某些配置,由于大家变得越来越懒了,为了保证灵活稳定及时等,配置中心的重要性也就体现出来了。
假定场景
此处假定一个高可用redis集群读写分离的场景,存在一个业务服务BusinessService.Sample,通过对配置文件XXX.BusinessService.Sample.Redis.json中Redis的集群信息的读取来维持Redis客户端的正常读写,配置文件中的数据发生变化时。Redis客户端会进行更新(假定场景- -只表达大致意思,勿喷)。
XXX.BusinessService.Sample.Redis.json中的配置信息假定为
{ "redis":{ "servers": ["127.0.0.1:6378""127.0.0.1:6379"], "master": "127.0.0.1:6378" } }
注册Redis健康监测及配置中心维护Redis的Master节点信息
将Redis的所有节点注册到Consul,并应用Consul进行健康监测。
{ "services": [{ "id":"redis1", "name":"redis", "tags":["redis1"], "address": "127.0.0.1", "port":6378, "checks": [ { "Tcp": "127.0.0.1:6378", "interval": "3s" } ] },{ "id":"redis2", "name":"redis", "tags":["redis2"], "address": "127.0.0.1", "port":6379, "checks": [ { "Tcp": "127.0.0.1:6379", "interval": "3s" } ] } ] }
Redis正常运行的状态如下:
对于Master的节点信息,这里采用配置中心进程存储
到这里基本工作算是完成了
创建Consul-template模板并注册
consul-template会通过Http请求从Consul中读取集群中的数据,数据发生变更时 consul-template会触发更新指定配置文件的操作。此处根据XXX.BusinessService.Sample.Redis.json的数据格式创建.ctmpl模板文件,内容如下(配置格式参考 Consul-template文档):
{ "redis":{ "servers": [{{range service "redis" "passing"}}"{{.Address}}:{{.Port}}"{{end}}], "master": "{{key "service/redis/master"}}" } }
然后进行注册(此处以windows作为实例,Linux操作一样)
consul-template.exe -consul "127.0.0.1:8500" -template="C:\Users\admin\Desktop\consul064\consul-temp\templates\XXX.BusinessService.Sample.Redis.json.ctmpl:C:\Users\admin\Desktop\BusinessService.Sample\BusinessService.Sample\BusinessService.Sample\XXX.BusinessService.Sample.Redis.json">> C:\Users\admin\Desktop\consul064\consul-temp\templates\logs\consul.log 2>&1
-consul后是consul的webui接口 ,用web管理consul就用的8500端口。
-template 后面是模板参数 第一个是模板地址 。冒号后的第二个参数是输出位置。
>> 后为日志输出路径
注册完成后即可动态触发XXX.BusinessService.Sample.Redis.json文件的动态修改了,比如关闭一个Redis实例或者Master节点发生变更时即可及时完成更新。
Redis的Master节点更新
master节点的更新此处可以通过监听redis哨兵的+switch-master事件监听,触发修改Consul配置中心中指定Redis Key完成。
相关推荐
Nginx的领事模板 Docker映像已安装nginx和consul模板 支持的标签和相应的Dockerfile链接 有关此图像及其历史记录的更多信息,请参阅的相关清单文件。...将consul-template添加为后端服务以侦听con
consul_template_release : " consul-template_{{ consul_template_version }}_linux_amd64 " consul_template_archive_file : " {{ consul_template_release }}.zip " consul_template_download_url : " ...
1. **Consul**:Consul提供了一套完整的服务发现、健康检查、KV存储、多数据中心的解决方案。在ENA环境中,Consul可以帮助管理和发现各个微服务实例,确保服务间的通信稳定可靠。 2. **Docker**:Docker是一种轻量...
Docker领事模板可用模板nginx.ctmpl可用版本0.11(docker标签: 0.11 ...标签0.11 docker run -d --name consul-template \ --net=host --restart=always \ --volumes-from=nginx \ -v /var/run/docker.sock:/var
Consul 是 HashiCorp 公司开发的一款开源工具,除了服务发现外,还具备健康检查、KV 存储、多数据中心的支持。在 Go Micro 中,我们可以通过 Consul 实现服务的注册和发现,使得服务能够自动找到彼此并进行通信。 ...
Consul 是一款由 HashiCorp 公司开发的开源工具,用于实现分布式系统的服务发现与配置。这个压缩包“consul-1.6.1-win-64.zip”提供了 Consul 的1.6.1版本,专为在Windows 64位操作系统上运行而设计。在IT领域,服务...
当kube-consul-registrator运行到Kubernetes集群中时, 是... (请勿将其添加到Deployment,ReplicaSet,StatefulSet和DaemonSet的元数据上) consul-registrator/enabled: <true>consul-registrator/service-id: <
consul-template会更新dnsmasq配置,并在配置更改后重新启动dnsmasq(例如,即时增加consul群集的大小)。 这使领事DNS查找HA。 保管箱通过通过Consul DNS公开的服务发现进行注册。 只要正常关闭集群,数据就会在...
hazelcast领事发现spi 为启用了Hazlecast 3.6+的应用程序提供基于Consul的发现策略。 这是一种易于配置的即插即用Hazlecast DiscoveryStrategy,可有选择地向Consul注册您的每个Hazelcast实例,并使Hazelcast节点...
与 consul-alerts 一起使用的通知命令 设置 只需放置/etc/consul-simple-notifier.ini (或-c选项以传递自定义位置)。 [email] recipients = [ "udzura+notify@udzura.jp", "udzura@example.com" ] [ikachan] ...
运行 HAProxy 的 Docker 容器由 consul-template 自动配置。 您可以轻松运行自己的 HAProxy 负载均衡器。 例子: $ docker run --name=myapp-loadbalancer \ -it --rm \ -p 8000 \ -p 127.0.0.1::8081 \ -e ...
Spring Cloud Consul:服务治理与配置中心 Spring Cloud Consul 是 Spring Boot 应用提供了 Consul 的支持,Consul 既可以作为注册中心使用,也可以作为配置中心使用。Consul 是 HashiCorp 公司推出的开源软件,...
Consul是由HashiCorp公司开发的一款开源工具,主要用于实现分布式系统的服务发现、健康检查、KV存储以及多数据中心的解决方案。描述中的"consul_1.10.1_linux_amd64.zip prometheus监控组件"意味着这个包不仅包含了...
ui-dir=./web-ui/dist转到 spring-cloud-consul-demo 文件夹启动2个服务实例: java -jar service/target/service-1.0.0.BUILD-SNAPSHOT.jar --server.port=8081java -jar service/target/service-1.0.0.
$ docker run --name consul-exporter bitnami/consul-exporter:latest 为什么要使用Bitnami Images? Bitnami密切跟踪上游源变化,并使用我们的自动化系统及时发布该图像的新版本。 对于Bitnami映像,将尽快提供...
SpringCloud consul-api-1.4.5.jarSpringCloud consul-api-1.4.5.jar
它允许应用通过简单的配置即可使用Consul的服务发现、配置中心等功能。 3. **服务提供者(Provider)的角色**: 在微服务架构中,服务提供者是提供业务功能的服务。在这个项目中,"springcloud-consul-provider...
spring-cloud-consul-example, spring 云领事示例是microservices系统的示例 spring-cloud-consul-example自述文件:英语 | 中文。spring-cloud-consul-example是microservices...服务发现。断路器。智能路由。分布式跟
它支持: Debian Wheezy Ubuntu 精确/可信CentOS/RHEL 5 或 6 关于 consul-alerts 的更多信息在他们的 github repo 上: : 模块说明该模块安装 consul-alerts 二进制文件并为其配置基本的 upstart init 脚本。...
领事服务注册员 请检查下面的完整文档。 目录安装及使用使用npm: $ npm install --save consul-service-registrator 使用纱: $ yarn add consul-service-registrator