consul简介

article/2025/9/20 15:25:55

目录

Consul 简介

Consul 的使用场景

Consul 的优势

Consul 的角色

consul cluster集群架构图

Consul常用命令

consul agent 命令的常用选项


 

Spring Cloud Consul 项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,具有分布式、高可用、高扩展性。

Consul 简介

Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式”,内置了服务注册与发现框 架、具有以下性质:

 分布一致性协议实现、
 健康检查、
 Key/Value存储、
 多数据中心方案,
 不再需要依赖其他工具(比如ZooKeeper等)。

使用起来也较 为简单。Consul使用Go语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器可无缝配合 。 
基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对. 
一致性协议采用 Raft 算法,用来保证服务的高可用. 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制.

Consul 的使用场景

docker 实例的注册与配置共享
coreos 实例的注册与配置共享
vitess 集群
SaaS 应用的配置共享
与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件


Consul 的优势

使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接. 相比较而言, zookeeper 采用的是 Paxos, 而 etcd 使用的则是 Raft. 
支持多数据中心,内外网的服务采用不同的端口进行监听。 多数据中心集群可以避免单数据中心的单点故障,而其部署则需要考虑网络延迟, 分片等情况等. zookeeper 和 etcd 均不提供多数据中心功能的支持. 
支持健康检查. etcd 不提供此功能. 
支持 http 和 dns 协议接口. zookeeper 的集成较为复杂, etcd 只支持 http 协议. 
官方提供web管理界面, etcd 无此功能.

Consul 的角色

client: 客户端, 无状态, 将 HTTP 和 DNS 接口请求转发给局域网内的服务端集群.server: 服务端, 保存配置信息, 高可用集群, 在局域网内与本地客户端通讯, 通过广域网与其他数据中心通讯. 每个数据中心的 server 数量推荐为 3 个或是 5 个.

由于Spring Cloud Consul项目的实现,我们可以轻松的将基于Spring Boot的微服务应用注册到Consul上,并通过此实现微服务架构中的服务治理。


consul cluster集群架构图

这里写图片描述这里写图片描述

Consul常用命令

命令解释示例
agent运行一个consul agentconsul agent -dev
join将agent加入到consul集群consul join IP
members列出consul cluster的membersconsul members
leave将节点移除所在集群consul leave

consul agent 命令的常用选项

-data-dir

作用:指定agent储存状态的数据目录
这是所有agent都必须的
对于server尤其重要,因为他们必须持久化集群的状态


-config-dir

作用:指定service的配置文件和检查定义所在的位置
通常会指定为”某一个路径/consul.d”(通常情况下,.d表示一系列配置文件存放的目录)
-config-file

作用:指定一个要装载的配置文件
该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的值覆盖)
-dev

作用:创建一个开发环境下的server节点
该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘
这种模式不能用于生产环境(因为第二条)
-bootstrap-expect 
- 作用:该命令通知consul server我们现在准备加入的server节点个数,该参数是为了延迟日志复制的启动直到我们指定数量的server节点成功的加入后启动。

-node

作用:指定节点在集群中的名称
该名称在集群中必须是唯一的(默认采用机器的host)
推荐:直接采用机器的IP
-bind

作用:指明节点的IP地址
有时候不指定绑定IP,会报Failed to get advertise address: Multiple private IPs found. Please configure one. 的异常
-server

作用:指定节点为server
每个数据中心(DC)的server数推荐至少为1,至多为5
所有的server都采用raft一致性算法来确保事务的一致性和线性化,事务修改了集群的状态,且集群的状态保存在每一台server上保证可用性
server也是与其他DC交互的门面(gateway)
-client

作用:指定节点为client,指定客户端接口的绑定地址,包括:HTTP、DNS、RPC
默认是127.0.0.1,只允许回环接口访问
若不指定为-server,其实就是-client
-join

作用:将节点加入到集群
-datacenter(老版本叫-dc,-dc已经失效)

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

 


 


http://chatgpt.dhexx.cn/article/Fbd0dVdp.shtml

相关文章

Consul 基本概念、内部原理

1.什么是Consul? Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面。 这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全服务网格。 Consul需要数据平面并支持代理和本机集成模型…

Consul的介绍和基本使用

一、Consul的简单介绍 Consul是一套开源的分布式服务发现和配置管理系统,由HasiCorp公司用go语言开发的。提供了微服务系统中服务助理、配置中心、控制总线等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构造全方位的服…

Consul 注册中心介绍以及搭建

本篇重点介绍 Consul 是什么,它可以解决什么问题,它与现有软件的比较,以及如何开始使用它。 目录 1、常见的注册中心2、Consul 介绍3、Consul 特性4、Consul的基本架构5、Consul单节点安装与启动6、Consul启动命令详解7、了解Consul启动输出8…

jQuery删除元素或内容

删除元素/内容 remove():删除被选元素 empty():删除被选元素中子元素

JQuery 数组获取和删除元素

<script>var target []; target [0] "aaa000"; target [1] "bbb111"; target [2] "ccc222"; target [3] "ddd333"; target [4] "eee444"; target [5] "fff555";console.log("使用push()添加元素…

jQuery添加元素

今天教大家来通过jQuery来很容易地添加与删除元素以及内容。我们主要学习的方法有添加的方法四个。首先我们来通过append()和prepend()方法来添加若干新元素&#xff0c;老样子&#xff0c;我们先来看效果展示&#xff1a;一个段落标签和一个button标签组成简易页面&#xff1b…

Jquery添加与移除元素

显示隐藏 siblings() addclass() 给元素添加class&#xff0c;如果元素上已经有其他的classname&#xff0c;那么新的会追加到现有classname后面 用法&#xff1a;$("li").addClass("bigger") removerClass() removerClass():可以将元素的某个class移…

jquery的DOM节点操作(删除元素节点)

1.删除元素节点 在操作页面时&#xff0c;删除多余或者指定的页面元素是非常必要的。 jquery中提供了remove&#xff08;&#xff09;方法来删除元素。 其语法格式如下&#xff1a; 删除元素节点示例代码&#xff1a; <!DOCTYPE html> <html><head><met…

jQuery 创建元素、添加元素、删除元素 【一篇文章轻松拿下】

&#x1f451; 原生 JS 中&#xff0c;我们学习了一整套元素创建添加删除的操作&#xff0c;其中创建元素&#xff0c;我们用了 creatElement&#xff0c;添加元素有两种&#xff0c;分别是后面追加 apprndChild&#xff0c;和指定元素前插入 insertBefore&#xff0c;在 jQuer…

jQuery-删除元素

删除元素有两种方法 remove()&#xff1a;删除被选元素&#xff08;及其子元素&#xff09; empty()&#xff1a;从被选元素中删除子元素 remove&#xff08;&#xff09;代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><met…

“浅”谈容灾和双活数据中心(下)

本文接续前文&#xff1a;“浅”谈容灾和双活数据中心&#xff08;上&#xff09;&#xff0c;上 篇发布之后&#xff0c;瓜哥粉丝量暴涨了好几百&#xff0c;感谢大家关注&#xff01; 第三部分&#xff1a;双活&#xff0c;看上去很美。 3.1 装逼是要付出代价的 看…

存储数据保护技术——双活

目录 基本概念&#xff1a; 双活部署方式&#xff1a; 当数据中心A和数据中心B同时写入数据&#xff0c;怎么区分&#xff1f;怎样保证数据一致性&#xff1a; 分布式锁互斥&#xff1a;来保证数据的一致性 互斥&#xff1a; 分布式锁&#xff1a; 注意&#xff1a; 仲裁…

【精华】 数据中心双活该如何构建

ICT架构师技术交流(微信号ICT_Architect) 介绍分析和交流ICT行业最前沿技术&#xff0c;分享云计算、存储、服务器、数据中心、网络、软件定义和虚拟化等相关知识&#xff0c;旨在知识交流、开放共享和共同进步。 因为最近经常看到大家在讨论数据中心双活解决方案&#xff0c;…

双活数据中心概念及优缺点介绍

主备数据中心之间一般有热备、冷备、双活三种备份方式。 热备 热备的情况下&#xff0c;只有主数据中心承担用户的业务&#xff0c;此时备数据中心对主数据中心进行实时的备份&#xff0c;当主数据中心挂掉以后&#xff0c;备数据中心可以自动接管主数据中心的业务&#xff0c;…

阿里超大数据中心“异地双活”实践

灾备系统和应急管理体系建设是数据中心永不变更的热点话题。从“两地三中心”、“同城双活”到“异地双活”&#xff0c;业内的讨论层出不穷。即使在容灾备份领域较早入手的金融行业&#xff0c;在灾备切换时也是谨慎再谨慎的&#xff0c;在历年“真实切换”演练时“手软”的例…

深入剖析Vplex双活数据中心存储方案

EMC上一代存储双活方案是通过vPlex网关产品实现&#xff0c;具备异构其他厂商存储的能力&#xff0c;将各厂商存储虚拟化为统一的存储池&#xff0c;为上层服务器提供存储资源。从2010年vPlex发布以来其的硬件已经更新了VS1、VS2和VS6三代。2016年推出的VS6硬件引擎间通过40Gb …

04|同城双活:如何实现机房之间的数据同步?

04&#xff5c;同城双活&#xff1a;如何实现机房之间的数据同步&#xff1f; 你好&#xff0c;我是徐长龙。今天我们来看看用户中心改造的另一个阶段&#xff1a;构建多机房。 在业务初期&#xff0c;考虑到投入成本&#xff0c;很多公司通常只用一个机房提供服务。但随着业…

数据中心的双活与灾备方案设计

灾备建设的最终目的就是要保护业务的连续性运行&#xff0c;除了技术层面的支撑外&#xff0c;还有人员、规划和流程等非技术决策层面支撑。养兵千日&#xff0c;用在一时。只有技术和规划通力配合&#xff0c;才能在真正发生灾难时保证业务连续性。 因此&#xff0c;业务连续性…

多数据中心多活相关知识

Cell&#xff1a;业务可封闭收敛最小执行分片&#xff1b;业务对请求空间按一定维度&#xff08;比如会员、门店等&#xff09;划分分片。 LDC&#xff1a;逻辑数据中心&#xff0c;是由多个业务可封闭 cell 组成的集合单元&#xff0c;拥有独立的基础中间件系统&#xff08;包…

第三讲:如何构建双活数据中心方案

针对数据中心双活解决方案如何构建,笔者把大家常见的疑问和问题进行汇总,加上我个人的见解写成一篇比较全面的文章,分享出来供大家参考。由于工作原因,可能今后近一个月的时间不能给及时大家写文章了,但是过了这段时间过后会尽快呈现给大家。 双活本身其实有广义和狭义之…