美文网首页我爱编程
Consul 简介、安装

Consul 简介、安装

作者: 可能会走 | 来源:发表于2018-03-14 15:45 被阅读0次

使用背景

客户端的调用一个微服务,在调用过程中,为了完成一次请求,代码需要知道服务实例的网络位置(IP 地址和端口),需要动态感知服务的服务健康度是否可用,负载均衡等相关问题,既然有这些问题,那么服务发现就是解决这些问题的。

consul 简介

那么consul是啥?consul就是提供服务发现的工具,下面是简单的介绍

那么consul是啥?consul就是提供服务发现的工具。
* 服务发现:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易
* health checking:健康检测使consul可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面
* key/value storage:一个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方操作。
* multi-datacenter:支持多数据中心无需复杂的配置,即可支持任意数量的区域

consul的几个概念

1. Consul Cluster由部署和运行了Consul Agent的节点组成。 在Cluster中有两种角色:Server和 Client。
2. Server和Client的角色和Consul Cluster上运行的应用服务无关, 是基于Consul层面的一种角色划分.
3. Consul Server: 用于维护Consul Cluster的状态信息, 实现数据一致性, 响应RPC请求。官方建议是: 至少要运行3个或者3个以上的Consul Server。 多个server之中需要选举一个leader, 这个选举过程Consul基于Raft协议实现. 多个Server节点上的Consul数据信息保持强一致性。 在局域网内与本地客户端通讯,通过广域网与其他数据中心通讯。Consul Client: 只维护自身的状态, 并将HTTP和DNS接口请求转发给服务端。
4. Consul 支持多数据中心, 多个数据中心要求每个数据中心都要安装一组Consul cluster,多个数据中心间基于gossip protocol协议来通讯, 使用Raft算法实现一致性
5.使用端口
   8300:TCP # Server RPC :agent server 使用的,用于处理其他agent发来的请求
   8301:TCP and UDP # Serf LAN: 所有的agent都要使用这个端口,用于处理LAN中的gossip,
   8302:TCP and UDP # Serf WAN:agent Server使用的,处理WAN中的与其他server的gossip
   8400:TCP # 所有agent都要使用的端口,用于处理从CLI来的RPC。
   8500:TCP # 所有agent都要使用的端口,用于处理HTTP API。
   8600:TCP and UDP # 用于处理 DNS 查询。

Consul安装

安装环境: mac:64bit(查看mac位数:打开终端–>”uname -a”)
consul安装很简单,从官网 https://www.consul.io/downloads.html 进行下载就好,将consul_1.0.6_darwin_amd64.zip 文件解压后执行
sudo scp consul /usr/local/bin/

查看是否安装成功

直接在安装目录下执行consul命令即可,出现如下结果,表示安装成功。

Consul 开发模式启动

./consul agent -dev
-dev(该节点的启动不能用于生产环境,因为该模式下不会持久化任何状态),该启动模式仅仅是为了快速便捷的启动单节点consul  该节点处于server模式  该节点是leader  该节点是一个健康节点 

Consul 集群方式启动

Server (启动3个节点) 
            consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=1 -client 0.0.0.0 -ui      (192.168.0.1)
            consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=2 -client 0.0.0.0 -ui      (192.168.0.2)
            consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=3 -client 0.0.0.0 -ui      (192.168.0.3)
Agent(启动2个节点)  
            consul agent -data-dir /tmp/consul -node=4 -join 192.168.0.1
            consul agent -data-dir /tmp/consul -node=5 -join 192.168.0.1

命令的常用选项,如下:
         -data-dir :  指定agent储存状态的数据目录,必填选项对于server尤其重要,因为他们必须持久化集群的状态
         -config-dir:指定service的配置文件和检查定义所在的位置
         -dev:该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘
         -node:指定节点在集群中的名称,该名称在集群中必须是唯一的(默认采用机器的host)
         -server :指定节点为server,每个数据中心(DC)的server数推荐至少为1,至多为5
         -join :将节点加入到集群
         -datacenter :指定机器加入到哪一个数据中心中
         -client :指定节点为client,指定客户端接口的绑定地址,包括:HTTP、DNS、RPC,默认是127.0.0.1,只允许回环接口访问
         -bootstrap-expect :该命令通知consul server我们现在准备加入的server节点个数,该参数是为了延迟日志复制的启动直到我们指
                                          定数量的server节点成功的加入后启动。
 常见问题:
        1.启动集群后,不能访问UI管理界面,查看client 是否没有配置,默认只能127.0.0.1 
        2.如果机器有多个网卡的时候,需要用  -bind :绑定IP地址,才能正常启动
        3.部署在生产环境可以用  nohup consul agent -config-dir=/etc/consul.d > /data/consul/data/consul.log & 方式启动

访问集群

相关文章

网友评论

    本文标题:Consul 简介、安装

    本文链接:https://www.haomeiwen.com/subject/omgtqftx.html