zoukankan      html  css  js  c++  java
  • Centos安装Consul微服务

    一、简介

          Consul([ˈkɒnsl],康搜)是注册中心,服务提供者、服务消费者等都要注册到Consul中,这样就可以实现服务提供者、服务消费者的隔离。除了Consul之外,还有Eureka、Zookeeper等类似软件。consul是存储服务名称与IP和端口对应关系的服务器

          consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server和client。每个数据中心官方建议需要3或5个server节点以保证数据安全,同时保证server-leader的选举能够正确的进行。

         @client

    CLIENT表示consul的client模式,就是客户端模式。是consul节点的一种模式,这种模式下,所有注册到当前节点的服务会被转发到SERVER,本身是不持久化这些信息。

        @server

    SERVER表示consul的server模式,表明这个consul是个server,这种模式下,功能和CLIENT都一样,唯一不同的是,它会把所有的信息持久化的本地,这样遇到故障,信息是可以被保留的。

       @server-leader

    中间那个SERVER下面有LEADER的字眼,表明这个SERVER是它们的老大,它和其它SERVER不一样的一点是,它需要负责同步注册的信息给其它的SERVER,同时也要负责各个节点的健康监测。

      @raft

    server节点之间的数据一致性保证,一致性协议使用的是raft,而zookeeper用的paxos,etcd采用的也是taft。

      @服务发现协议

    consul采用http和dns协议,etcd只支持http

      @服务注册

    consul支持两种方式实现服务注册,一种是通过consul的服务注册http API,由服务自己调用API实现注册,另一种方式是通过json个是的配置文件实现注册,将需要注册的服务以json格式的配置文件给出。consul官方建议使用第二种方式。

      @服务发现

    consul支持两种方式实现服务发现,一种是通过http API来查询有哪些服务,另外一种是通过consul agent 自带的DNS(8600端口),域名是以NAME.service.consul的形式给出,NAME即在定义的服务配置文件中,服务的名称。DNS方式可以通过check的方式检查服务。

      @服务间的通信协议

    Consul使用gossip协议管理成员关系、广播消息到整个集群,他有两个gossip  pool(LAN pool和WAN pool),LAN pool是同一个数据中心内部通信的,WAN pool是多个数据中心通信的,LAN pool有多个,WAN pool只有一个。

     二、安装

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

       1)下载

    wget https://releases.hashicorp.com/consul/1.3.0/consul_1.3.0_linux_amd64.zip

      2)解压

    unzip  consul_1.3.0_linux_amd64.zip

     3)拷贝到usr目录下

    mv consul   /usr

    4)查看是否安装成功

    ./consul

    5)启动

    ./consul agent -dev -ui -node=consul-dev -client=192.168.*.** #虚拟机ip

    6) 后在浏览器中输 http://192.168*.**:8500 就可以访问了

     二、创建集群

      1)准备四台服务器

    192.168.45.98  server
    192.168.45.99  server
    192.168.45.147 server
    192.168.45.203 client

     2)配置节点

    Agent 节点
    ./consul agent  -dev -ui  -data-dir=data -node=n4 -bind=192.168.45.203 -client=0.0.0.0  #如果在后面加 "&"符号则是后天运行
    Server节点

    ./consul agent -server -bootstrap-expect 3 -data-dir=data -node=n1 -bind=192.168.45.99 -client=0.0.0.0  #如果在后面加 "&"符号则是后天运行


    ./consul agent -server -bootstrap-expect 3 -data-dir=data -node=n2 -bind=192.168.45.203 -client=0.0.0.0 #如果在后面加 "&"符号则是后天运行


    ./consul agent -server -bootstrap-expect 3 -data-dir=data -node=n3 -bind=192.168.45.147 -client=0.0.0.0 #如果在后面加 "&"符号则是后天运行

    -server 表示是server模式
      -bootstrap-expect=3 表示是集群中有3台服务器 bootstrap该模式node可以指定自己作为leader ,如果是非leader可不加该参数
      -data-dir=/tmp/consul 目录
      -node=n2 该服务器节点名
      -bind=192.168.45.99 节点绑定的ip
      -ui 非必须 webui的路径 用web来管理consul

    3)加入集群,集群已 192.168.45.147位leader。如果加入失败,则开启端口

    ./consul join 192.168.45.98
    ./consul join 192.168.45.99
    ./consul join 192.168.45.203

    4)查看集群

    ./consul members

    5)查看三台服务器打印的数据,说明配置成功

    consul: New leader elected: n4

    6)在浏览器中查看

     7)查看集群信息

    ./consul operator raft list-peers

    8)清理集群信息,直接杀死线程

  • 相关阅读:
    对象池使用时要注意几点
    Flash3D学习计划(一)——3D渲染的一般管线流程
    714. Best Time to Buy and Sell Stock with Transaction Fee
    712. Minimum ASCII Delete Sum for Two Strings
    647. Palindromic Substrings(马拉车算法)
    413. Arithmetic Slices
    877. Stone Game
    338. Counting Bits
    303. Range Sum Query
    198. House Robber
  • 原文地址:https://www.cnblogs.com/xiaoyaodijun/p/9797174.html
Copyright © 2011-2022 走看看