简介

     
 Consul-template是Consul的一个方扩张工具,通过监听Consul中之多少足以动态修改部分部署文件,大家比较热衷让采用在Nginx,HAProxy上动态配置健康状态下之客户端反朝代理信息。GitHub上的文档比较详细,这里大概做个入门介绍。

  关于配置基本未举行过多介绍了。简单描述就是是项目多了,管理起来就是见面比较复杂,比如当海量应用被若修改一局部采用中之一点配置,由于大家更换得更加疲惫了,为了保灵活稳定这等,配置中心的基本点也即体现出来了。

一经场景

  此处设一个赛可用redis集群读写分离的现象,存在一个工作服务BusinessService.Sample,通过对安排文件XXX.BusinessService.Sample.Redis.json中Redis的集群信息之读取来保持Redis客户端的正规读写,配置文件中之数发生变化时。Redis客户端会开展翻新(假定场景-
-只表述大致意思,勿喷)。

图片 1

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正常运行的状态如下:

图片 2

 

  对于Master的节点信息,这里用配备中心经过存储

图片 3

 到这边基本工作算完了了

开创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完成。

 

 

对此Consul的采用国内的园地表象上比较小,出于工作缘故平时研究也未是格外深刻,希望大家共同读书交流。群号:234939415

 

相关文章

网站地图xml地图