新手到微服务。
我一直在研究开发带弹簧执行器的微服务,同时使用Consul进行服务发现和故障恢复。 我按照Consul文档中的说明配置了一个集群。
现在我要做的是配置一个Consul Watch,以便在我的任何服务停止时触发并执行shell脚本来重启我的服务。以下是我的配置文件。
{
"bind_addr": "127.0.0.1",
"datacenter": "dc1",
"encrypt": "EXz7LsrhpQ4idwqffiFoQ==",
"data_dir": "/data",
"log_level": "INFO",
"enable_syslog": true,
"enable_debug": true,
"enable_script_checks": true,
"ui":true,
"node_name": "SpringConsulClient",
"server": false,
"service": { "name": "Apache", "tags": ["HTTP"], "port": 8080,
"check": {"script": "curl localhost >/dev/null 2>&1", "interval": "10s"}},
"rejoin_after_leave": true,
"watches": [
{
"type": "service",
"handler": "/Consul-Script.sh"
}
]
}
任何帮助/提示都会非常感激。
此致 克里斯汉
答案 0 :(得分:1)
仔细查看官方文档中service watch type的说明。它有一个例子,你可以如何指定它:
{
"type": "service",
"service": "redis",
"args": ["/usr/bin/my-service-handler.sh", "-redis"]
}
请注意,它没有属性handler
,但是将脚本的路径作为参数。还有一个:
它需要“服务”参数
看来,在您的情况下,您需要按如下方式指定:
"watches": [
{
"type": "service",
"service": "Apache",
"args": ["/fully/qualified/path/to/Consul-Script.sh"]
}
]