专栏首页DBA随笔Consul安装和初步使用

Consul安装和初步使用

Consul安装和初步使用

一、安装方式

Linux64位系统直接运行下列命令:

wget https://releases.hashicorp.com/consul/1.2.3/consul_1.2.3_linux_amd64.zipunzip consul_1.2.3_linux_amd64.zipsudo mv consul /usr/bin

如果上述安装方式出现了consul not be found的错误,说明环境变量PATH没有配置正确,请返回检查consul安装路径是否包含在PATH中。

运行consul之前,首先介绍下consul的启动参数,consul agent 命令的常用选项,如下:

1.-data-dir

a.作用:指定agent储存状态的数据目录

b.这是所有agent都必须的

c.对于server尤其重要,因为他们必须持久化集群的状态

2.-config-dir

a.作用:指定service的配置文件和检查定义所在的位置

b.通常会指定为”某一个路径/consul.d”(通常情况下,.d表示一系列配置文件存放的目录)

3.-config-file

a.作用:指定一个要装载的配置文件

b.该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的

值覆盖)

4.-dev

a.作用:创建一个开发环境下的server节点

b.该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘

c.这种模式不能用于生产环境(因为第二条)

5.-bootstrap-expect

a.作用:该命令通知consul server我们现在准备加入的server节点个数,该参

b.是为了延迟日志复制的启动直到我们指定数量的server节点成功的加入后

启动。

6.-node

a.作用:指定节点在集群中的名称

b.该名称在集群中必须是唯一的(默认采用机器的host)

c.推荐:直接采用机器的IP

7.-bind

a.作用:指明节点的IP地址

b.有时候不指定绑定IP,会报Failed to get advertise address: Multiple private IPs found. Please configure one. 的异常

8.-server

a.作用:指定节点为server

b.每个数据中心(DC)的server数推荐至少为1,至多为5

c.所有的server都采用raft一致性算法来确保事务的一致性和线性化,事务修

改了集群的状态,且集群的状态保存在每一台server上保证可用性

d.server也是与其他DC交互的门(gateway)

9.-client

a.作用:指定节点为client,指定客户端接口的绑定地址,包括:HTTP、DNS、RPC

b.默认是127.0.0.1,只允许回环接口访问

c.若不指定为-server,其实就是-client

10.-join

a.作用:将节点加入到集群

11.-datacenter(老版本叫-dc,-dc已经失效)

a.作用:指定机器加入到哪一个数据中心中

二、功能试运行

启动agent

consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul -node=s1 -bind=10.0.2.15 -ui-dir ./consul_ui/ -rejoin -client 0.0.0.0

运行后输出如下结果:

查看成员:

consul members

三、注册服务

注册两个 Mysql 服务的实例, 数据中心在 sz-1, 端口都是 3306. 具体为以下命令:

curl -X PUT -d '{"Datacenter": "dc1", "Node": "c2", "Address": "10.0.2.15", "Service": {"Service": "Linux1", "tags": ["yeyz", "Linux"], "Port": 22}}' http://127.0.0.1:8500/v1/catalog/registercurl -X PUT -d '{"Datacenter": "dc1", "Node": "c1", "Address": "10.0.2.15", "Service": {"Service": "Linux2", "tags": ["yeyz", "Linux"], "Port": 22}}' http://127.0.0.1:8500/v1/catalog/register

查看服务节点并使用json格式化输出

curl 127.0.0.1:8500/v1/catalog/service/Linux1|python -m json.tool

使用DNS协议查看节点信息:

dig @127.0.0.1 -p 8600 Linux1.node.consul

后续将更深一步的对Consul进行调研,然后给出MHA+Cousul的高可用方案

本文分享自微信公众号 - DBA随笔(gh_acc2bbc0d447),作者:AsiaYe

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis开发与运维学习笔记---(18)

    前面的文章讲述了redis sentinel实现原理当中的定时任务、主观下线和客观下线,今天我们来看sentinel领导者选举以及故障转移部分。

    AsiaYe
  • Redis开发与运维学习笔记---(11)

    之前的文章中,我们讲述了redis的复制机制,通过复制,数据可以被备份,然后这些备份的副本可以用来做读写分离、负载均衡、故障转移等,在实际应用复制功能时,有一...

    AsiaYe
  • Redis开发与运维学习笔记

    前面的文章讲述了redis sentinel可以实现对redis master的可用性监控和故障转移,今天从原理上来理解这个过程,sentinel的实现原理分为...

    AsiaYe
  • DotNet程序配置文件

        在实际的项目开发中,对于项目的相关信息的配置较多,在.NET项目中,我们较多的将程序的相关配置直接存储的.config文件中,例如web.conf...

    彭泽0902
  • SpringBoot设置全局错误页面

    SpringBoot内置了一套错误页面:Default Whitelabel Error Page,很多时候我们通常要自己个性化错误页面,方法很简单,使用Jav...

    王念博客
  • 子集

    给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。

    WindrunnerMax
  • 03Vue.js快速入门-Vue列表渲染及条件渲染实战

    有时候我们要根据数据的情况,决定标签是否进行显示或者有其他动作。最常见的就是,表格渲染的时候,如果表格没有数据,就显示无数据。如果有数据就显示表格数据。 Vue...

    老马
  • 03-Vue入门系列之Vue列表渲染及条件渲染实战

    3.1. 条件渲染 有时候我们要根据数据的情况,决定标签是否进行显示或者有其他动作。最常见的就是,表格渲染的时候,如果表格没有数据,就显示无数据。如果有数据就显...

    老马
  • docker学习系列13 实现 基于pxc 的mysql 多节点主主同步

    MySQL本身是开源的,有些公司或社区基于MySQL发布了新的分支,如有名的MariaDB。 在介绍 Percona 之前,首要要介绍的是XtraDB存储引擎...

    mafeifan
  • 解读文件描述符

    最近由于机缘巧合,结合最近工作中遇到的一些问题,深入了解了文件描述符(File Descriptor,简称FD,以下使用 FD 称谓)。预计会有两到三篇关于 F...

    技术小黑屋

扫码关注云+社区

领取腾讯云代金券