Consul-template+Nginx实现Consul集群高可用

描述

目前市面上有两种提供服务发现工具,Eureka和Consul,Eureka集群、技术能力已经成熟,但是已经不维护,有一些公司用了Consul做为替代品,小编负责项目遇到一个问题,Consul集群没有实现高可用,导致RPC有段时间没有工作。。。

Consul配置文件和Eureka配置文件不一样,需要指定所有集群ip和端口并用逗号隔开,而Consul只能指定一台机器的ip和端口,所以当指定这台机器宕机以后其它服务就无法使用RPC接口。

安装Consul集群

详情见上篇博客:。。。。。。。

安装并配置Nginx

安装Nginx

在nginx.conf中添加如下include conf.d/*.conf;配置。
在这里插入图片描述

Consul-Template简介

Consul-Template可以查询Consul中的服务目录、Key、Key-values等。这种强大的抽象功能和查询语言模板可以使Consul-Template特别适合动态的创建配置文件。例如:创建Apache/Nginx Proxy Balancers、Haproxy Backends、Varnish Servers、Application Configurations等

  • Quiescence:Consul-Template内置静止平衡功能,可以智能的发现Consul实例中的更改信息。这个功能可以防止频繁的更新模板而引起系统的波动。
  • Dry Mode:不确定当前架构的状态,担心模板的变化会破坏子系统?无须担心。因为Consul-Template还有Dry模式。在Dry模式,Consul-Template会将结果呈现在STDOUT,所以操作员可以检查输出是否正常,以决定更换模板是否安全。
  • CLI and Config:Consul-Template同时支持命令行和配置文件。
  • Verbose Debugging:即使每件事你都做的近乎完美,但是有时候还是会有失败发生。Consul-Template可以提供更详细的Debug日志信息。

Consul-Template安装

下载Consul-Template
wget https://releases.hashicorp.com/consul-template/0.19.3/consul-template_0.19.3_linux_amd64.zip

解压Consul-Template
unzip consul-template_0.19.3_linux_amd64.zip

如果没有unzip则安装
sudo apt-get install unzip

授最高权限
chmod 777 consul-template

测试是否安装成功
consul-template -v

编写ctmpl模板

创建consul.ctmpl(touch consul.ctmpl)文件,内容如下:

upstream consul {
       
	{
   {
   range service "consul"}}    
	# .Port 获取consul的8300端口,这里直接写成8500
    server {
   
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值