详解consul的安装和配置

Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现。支持外部 SaaS 提供者等。

consul提供的一些关键特性:

service discovery:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册。

health checking:健康检测使consul可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面。

key/value storage:一个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方操作。

multi-datacenter:无需复杂的配置,即可支持任意数量的区域(数据中心)。

官方网站:https://www.consul.io/

系统环境:CentOS release 6.5 (Final) x64

consul最新版的下载地址

https://releases.hashicorp.com/consul/0.6.4/consul_0.6.4_linux_amd64.zip

下载解压,里面只有一个consul可执行文件,执行

[root@localhost consul-0.6.4]# consul
usage: consul [--version] [--help] <command> [<args>] 

Available commands are:
  agent     Runs a Consul agent
  configtest   Validate config file
  event     Fire a new event
  exec      Executes a command on Consul nodes
  force-leave  Forces a member of the cluster to enter the "left" state
  info      Provides debugging information for operators
  join      Tell Consul agent to join cluster
  keygen     Generates a new encryption key
  keyring    Manages gossip layer encryption keys
  leave     Gracefully leaves the Consul cluster and shuts down
  lock      Execute a command holding a lock
  maint     Controls node or service maintenance mode
  members    Lists the members of a Consul cluster
  monitor    Stream logs from a Consul agent
  reload     Triggers the agent to reload configuration files
  rtt      Estimates network round trip time between nodes
  version    Prints the Consul version
  watch     Watch for changes in Consul 

其中,最常用到的命令是agent

输入consul agent -h 可以查看帮助。其中常见的参数解释如下:

-advertise:通知展现地址用来改变我们给集群中的其他节点展现的地址,一般情况下-bind地址就是展现地址 
-bootstrap:用来控制一个server是否在bootstrap模式,在一个datacenter中只能有一个server处于bootstrap模式,当一个server处于bootstrap模式时,可以自己选举为raft leader。 
-bootstrap-expect:在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap公用 
-bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0 
-client:consul绑定在哪个client地址上,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1 
-config-file:明确的指定要加载哪个配置文件 
-config-dir:配置文件目录,里面所有以.json结尾的文件都会被加载 
-data-dir:提供一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录必须是稳定的,系统重启后都继续存在 
-dc:该标记控制agent允许的datacenter的名称,默认是dc1 
-encrypt:指定secret key,使consul在通讯时进行加密,key可以通过consul keygen生成,同一个集群中的节点必须使用相同的key 
-join:加入一个已经启动的agent的ip地址,可以多次指定多个agent的地址。如果consul不能加入任何指定的地址中,则agent会启动失败,默认agent启动时不会加入任何节点。 
-retry-join:和join类似,但是允许你在第一次失败后进行尝试。 
-retry-interval:两次join之间的时间间隔,默认是30s 
-retry-max:尝试重复join的次数,默认是0,也就是无限次尝试 
-log-level:consul agent启动后显示的日志信息级别。默认是info,可选:trace、debug、info、warn、err。 
-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名 
-protocol:consul使用的协议版本 
-rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。 
-server:定义agent运行在server模式,每个集群至少有一个server,建议每个集群的server不要超过5个 
-syslog:开启系统日志功能,只在linux/osx上生效 
-ui-dir: 提供存放web ui资源的路径,该目录必须是可读的 
-pid-file: 提供一个路径来存放pid文件,可以使用该文件进行SIGINT/SIGHUP(关闭/更新)agent

要想利用consul提供的服务实现服务的注册与发现,我们需要建立consul cluster。

在consul方案中,每个提供服务的节点上都要部署和运行consul的agent,所有运行consul agent节点的集合构成consul cluster。

consul agent有两种运行模式:server和client。这里的server和client只是consul集群层面的区分,与搭建在cluster之上的应用服务无关。

以server模式运行的consul agent节点用于维护consul集群的状态,

官方建议每个consul cluster至少有3个或以上的运行在server mode的agent,client节点不限。

我们这里以安装三个节点为例,环境配置如下

192.168.1.100 以server模式运行

192.168.1.101,192.168.1.102 以client模式运行

一:配置consul

把上面下载的文件解压,并把consul拷贝到/opt/consul目录,然后把/opt/consul目录加入到环境变量(三个节点依次配置)

二:运行

1:在192.168.1.100节点上面进行

cd /opt/consul

mkdir data

consul agent -server -bootstrap -bind=0.0.0.0 -client=192.168.1.100 -data-dir=data -ui -node=192.168.1.100

这样,就启动了一个节点

2:在192.168.1.101节点上面进行

cd /opt/consul

mkdir data

consul agent -bind=0.0.0.0 -client=192.168.1.101 -data-dir=data -node=192.168.1.101 -join=192.168.1.100

3:在192.168.1.102节点上面进行

cd /opt/consul

mkdir data

consul agent -bind=0.0.0.0 -client=192.168.1.102 -data-dir=data -node=192.168.1.102 -join=192.168.1.100

全部节点启动完之后

访问http://192.168.1.100:8500/  即可查看consul集群的管理页面

在任意节点执行consul members 即可查看集群节点信息

这里在192.168.1.100节点执行

[root@localhost consul-0.6.4]# consul members -rpc-addr=192.168.1.100:8400
Node      Address       Status Type  Build Protocol DC
192.168.1.101 192.168.1.101:8301 alive  client 0.6.4 2     dc1
192.168.1.102 192.168.1.102:8301 alive  client 0.6.4 2     dc1
192.168.1.100 192.168.1.100:8301 alive  server 0.6.4 2     dc1 

关闭节点

consul leave -rpc-addr=192.168.1.100:8400

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解Spring Cloud Consul 实现服务注册和发现

    Spring Cloud 是一个基于 Spring Boot 实现的云应用开发工具,它为基于 JVM 的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式.通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂.易部署和易维护的分布式系统开发工具包. Spring Cloud 包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Sprin

  • 详解在Windows下如何使用AspNetCore Api 和consul

    一.概念:什么是consul: Consul 是有多个组件组成的一个整体,作用和Eureka,Zookeeper相当,都是用来做服务的发现与治理. Consul的特性: 1.服务的发现:consul可以把注册到其中的服务提供给使用者,也可以主动发现服务,在consul的客户端界面中用户可以得到,服务的信息,比如IP端口等信息,在客户端界面中可以很容易的找到注册的服务, 2.健康检查:这里健康检查就是检查服务是否在良好的运行,这里判断服务是否运行良好,可以用Web服务的状态进行判断,也可以用服务器

  • 详解CentOS 7.4下如何部署Asp.Net Core结合consul

    上篇我们讲到consul的概念,以及在WIN下如何使用:https://www.jb51.net/article/141783.htm 步骤如下: 1.安装虚拟机VM 2.下载安装 CentOS 7.4 下载地址:https://www.jb51.net/softs/590894.html 这是安装示例: VM虚拟机安装CentOS示例 https://www.jb51.net/article/108088.htm 3.配置网络环境(确保网络通) 4.下载安装dotnet 运行环境 4.1.注册

  • 详解consul的安装和配置

    Consul 简化了分布式环境中的服务的注册和发现流程,通过 HTTP 或者 DNS 接口发现.支持外部 SaaS 提供者等. consul提供的一些关键特性: service discovery:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册. health checking:健康检测使consul可以快速的告警在集群中的操作.和服务发现的集成,可以防止服务转发到故障的服务上面. key/value storage:一个用来

  • 详解CentOS7.0安装与配置Tomcat-7

    安装说明 安装环境:CentOS-7.0.1406 安装方式:源码安装 软件:apache-tomcat-7.0.29.tar.gz 下载地址:http://tomcat.apache.org/download-70.cgi 安装前提 系统必须已安装配置JDK6+,安装请参考:在CentOS-6.3中安装与配置JDK-7. 安装tomcat 将apache-tomcat-7.0.29.tar.gz文件上传到/usr/local中执行以下操作: 代码如下: [root@admin local]#

  • 详解Ubuntu下安装和配置Apache2

    在Ubuntu中安装apache 安装指令: sudo apt-get install apache2 安装结束后: 产生的启动和停止文件是:/etc/init.d/apache2 启动: sudo apache2ctl -k start 停止: sudo apache2ctl -k stop 重新启动: sudo apache2ctl -k restart 配置文件保存在:/etc/apache2 需要说明的是,普通的apache发行版本配置文件是:httpd.conf Ubuntu发行版本的

  • 详解nginx使用ssl模块配置支持HTTPS访问

    背景: 项目开发中用到了微信小程序,但是服务器配置URL必须是HTTPS,所以需要通过配置nginx的SSL模块来支持HTTPS访问,也就是说,要做一个网站域名为 dmsdbj.com 要求通过HTTPS://dmsdbj.com进行访问. SSL英文名为Secure Socket Layer,安全套接字层.SSL是一种数字证书,它使用ssl协议在浏览器和web server之间建立一条安全通道,数据信息在client与server之间的安全传输. 本篇博客是对这个操作步骤的详解. 前提: 1.

  • 详解Vue-Router的安装与使用

    目录 安装 路由的基础配置 将Router安装到Vue中 Router的相关配置 Router.routes 的相关配置 实现一个简单的路由 1.配置路由 2. 在组件中实现路由 1. router-link 用于实现路由的跳转组件:该组件支持的属性 2. router-view 根据当前VueRouter的配置,当路由路由路径发生改变时渲染对应的路由视图组件 安装 1.在已有Vue项目中手动安装vue-router npm install --save vue-router 2.使用vue-c

  • 详解Hbuilder中PHP环境配置

    目录 一.开启环境 二.XAMPP的安装路径 三.Hbuilder软件 四.在HBuilder上安装支持PHP的插件 五.配置HBuilder外置服务器 六.新建php文件进行测试 HBuilder是非常高效.快速的网站开发编辑器,我们用Hbuilder做网站后台php开发时,如果想要点击工具栏上的浏览器按钮进行快速预览,本文将详细介绍在前端开发神器Hbuilder中集成运行PHP的环境. 因为HBuider没有集成php运行环境,所以要依赖于一个环境,比如XAMPP.AppServ.WAMP等

  • 详解 Nginx 301重定向的配置

    详解 Nginx 301重定向的配置 301重定向是很常见的需求,比如访问 nowamagic.net,自动跳到 www.nowamagic.net.或者倒过来,访问 www.nowamagic.net 跳到 nowamagic.net.Nginx 中配置 301 重定向(301 redirect)很容易,下面介绍下方法. 打开 nginx.conf 文件,找到你的 server 配置段: server { listen 80; server_name nowamagic.net www.now

  • 详解log4j.properties的简单配置和使用

    本文介绍了详解log4j.properties的简单配置和使用,分享给大家,具体如下: 简单log4j.properties配置示例 ### set log levels ### log4j.rootLogger = INFO , console , debug , error ### console ### log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = Syst

  • 详解python环境安装selenium和手动下载安装selenium的方法

    方法1:cmd环境下,用pip install selenium 可能会很慢 方法2:下载selenium安装包手动安装 下载地址:https://pypi.org/project/selenium/ 选择扩展名为gz的源码包进行下载 下载后解压,cmd环境进入到setup.py文件所在目录 运行 python setup.py install命令进行安装 安装完后用pip list可看到selenium的信息 此时就可以用import selenium引入selenium包了 到此这篇关于详解

  • 详解ASP.NET Core中配置监听URLs的五种方式

    默认情况下,ASP. NET Core应用会监听一下2个Url: http://localhost:5000 https://localhost:5001 在本篇博文中,我将展示如何使用五种不同的方式改变应用监听的URLs. 在ASP.NET Core项目启动时,有多种配置监听Url的方式,在我之前的一篇博客中,已经展示了在ASP.NET Core 1.0中如何应用不同的方式配置,在ASP.NET Core 3.x中,大部分方式还是一样的. UseUrls() - 在Program.cs配置程序

随机推荐