美文网首页
Linux下搭建consul集群

Linux下搭建consul集群

作者: 李小二的倔强 | 来源:发表于2018-12-24 09:47 被阅读0次

伏法朝朝忧闷,强梁夜夜欢歌,损人利己骑马骡,正直公停挨饿,
修桥补路瞎眼,杀人放火儿多,我到西天问我佛,佛说……我也没辙!

一、三台机器server模式

介绍

Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等)。使用起来也较 为简单。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker 等轻量级容器可无缝配合。

特性

服务发现 Consul的客户端可用提供一个服务,比如 api 或者mysql ,另外一些客户端可用使用Consul去发现一个指定服务的提供者.通过DNS或者HTTP应用程序可用很容易的找到他所依赖的服务.
健康检查 Consul客户端可用提供任意数量的健康检查,指定一个服务(比如:webserver是否返回了200 OK 状态码)或者使用本地节点(比如:内存使用是否大于90%). 这个信息可由operator用来监视集群的健康.被服务发现组件用来避免将流量发送到不健康的主机.
Key/Value存储 应用程序可用根据自己的需要使用Consul的层级的Key/Value存储.比如动态配置,功能标记,协调,领袖选举等等,简单的HTTP API让他更易于使用.
多数据中心 Consul支持开箱即用的多数据中心.这意味着用户不需要担心需要建立额外的抽象层让业务扩展到多个区域.
Consul面向DevOps和应用开发者友好.是他适合现代的弹性的基础设施.

服务注册发现流程

Consul在业界最广泛的用途就是作为服务注册中心,同Eureka类型,consul作为服务注册中心它的注册和发现流程:


image.png

在上面的流程图上有三个角色,分别为服务注册中心、服务提供者、服务消费者。
1.服务提供者Provider启动的时候,会向Consul发送一个请求,将自己的host、ip、应用名、健康检查等元数据信息发送给Consul
2.Consul 接收到 Provider 的注册后,定期向 Provider 发送健康检查的请求,检验Provider是否健康

  1. 服务消费者Consumer会从注册中心Consul中获取服务注册列表,当服务消费者消费服务时,根据应用名从服务注册列表获取到具体服务的实例(1个或者多个),从而完成服务的调用。

Consul建议的架构

基于Consul的leader选举模式,Consul官方建议的是consul-server采用3或5节点来保证可用性,而每台client注册在本地的服务器上负责健康检查和向server上报信息,不同概念的应用处于不同的数据中心下。

下图源自Consul官方站点:


image.png

环境准备

三台机器:

vm-a 172.31.129.12 centos7
vm-b 172.31.129.13 centos7
vm-c 172.31.129.17 centos7

Consul官网(https://www.consul.io/downloads.html)下载相应系统的consul可执行文件。
我下载的是consul_1.7.2_linux_amd64.zip,在上面的每台机器上解压,并拷贝到/usr/local/pid/目录下。

#解压
unzip consul_1.4.3_linux_amd64.zip
#consul数据、配置存放文件夹
mkdir consul-data

二、两台机器(一个server模式,一个client模式)

直接接启动cousul

./consul

server [10.0.86.194]

启动 Server 节点

[root@centos7 sdb]# ./consul agent -server -bootstrap-expect=1 -data-dir=consul-data -config-dir=consul-data -node=server-node1 -bind=10.0.86.194 -client=10.0.86.194 -datacenter=sdb -ui

client [10.0.86.208]

启动 Client 节点

[root@centos7 sdb]# ./consul agent -data-dir=consul-data -node=client-node1 -bind=10.0.86.208 -datacenter=sdb -config-dir=consul-data

加入集群

[root@centos7 sdb]# ./consul join 10.0.86.194

查看集群列表

[root@centos7 sdb]# ./consul members

单机启动

在consul执行文件同级目录建立一个名为consul-data文件夹

[root@centos7 pid]# nohup ./consul agent -server -bootstrap-expect=1 -data-dir=consul-data -config-dir=consul-data -node=server-node1 -bind=10.0.88.95 -client=0.0.0.0 -datacenter=pid -ui > /dev/null 2>&1 &

相关文章

  • Linux下搭建consul集群

    伏法朝朝忧闷,强梁夜夜欢歌,损人利己骑马骡,正直公停挨饿,修桥补路瞎眼,杀人放火儿多,我到西天问我佛,佛说……我也...

  • consul集群搭建及spring cloud集成

    consul概念解析,集群搭建及作为配置中心与spring cloud集成 Consul是什么? Consul 官...

  • 搭建consul集群

    前言 使用分布式健康检查的第一步就是在不同的网段搭建consul 集群 基础环境: 在管理网搭建consul 集群...

  • Docker搭建consul集群

    docker相关命令 docker搭建consul集群 在docker上安装consul(默认安装最新版本) 启动...

  • Consul集群环境搭建+ACL配置

    Consul集群环境搭建 环境准备 consul版本:1.6.3 机器信息 机器IP占用端口Agent类型节点名称...

  • Consul集群搭建

    介绍Consul和Eureka一样也可以用来做注册中心, 但是Consul不同于Eureka,Consul包含多个...

  • consul 集群搭建

    consul 有agent client 和 server 两种模式,通过3台server 模式进行集群 下载 ...

  • Consul集群搭建

    背景及简介 consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现...

  • 01 - Consul集群部署

    本文对consul的分布式集群部署做介绍,consul版本为1.x 环境 linux系统(centos) 节点数:...

  • ActiveMQ集群

    一、安装JDK 请参考:Linux下快速安装JDK 二、搭建zookeeper集群 请参考:zookeeper集群...

网友评论

      本文标题:Linux下搭建consul集群

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