iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >如何理解Consul的命令
  • 363
分享到

如何理解Consul的命令

2024-04-02 19:04:59 363人浏览 薄情痞子
摘要

本篇内容主要讲解“如何理解Consul的命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Consul的命令”吧!AgentConsul集群中在后台长时

本篇内容主要讲解“如何理解Consul的命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Consul的命令”吧!

Agent

Consul集群中在后台长时间运行的进程就是代理。代理通过consul  agent启动。代理能够以客户端或服务端模式运行。因为集群中每个节点都必须有一个代理,因此将节点称为客户端或服务器更为简单。所有的代理都可以有DNS或Http接口,负责健康检查和保持服务同步。

Client

客户端是将所有rpc请求转发到服务端的代理。客户端是相对无状态的。客户端跑的唯一后台程序就是参与LAN的Gossip池。这种活动资源开销最小,并且仅消耗少量的网络带宽。

Server

服务端是有扩展职责集的代理,扩展功能包括参与Raft仲裁,维护集群状态,响应RPC请求,与其他数据中心交换WAN  gossip,以及将查询转发给集群leader或远程数据中心。

Datacenter

数据中心是一个私有的,低延迟的,高带宽的网络环境。当然这不包括穿越公网的通信,但出于我们的目的,单个EC2区域内的多个可用区将被视为单个数据中心的一部分。

Consensus

共识协议就是集群选举leader的一致性协议和交易顺序的协议。由于这些事务适用于有限状态机,因此我们对一致性的定义意味着复制状态机的一致性。共识在Wikipedia上有更详细的描述,后面的文章会说Consul的实现。

Gossip

Consul建立在Serf之上,Serf提供了完整的,可用于多种目的Gossip协议。Serf提供了成员管理,故障检测和事件广播等功能。后面会重点说Gossip协议。Gossip会涉及到随机的节点到节点的UDP通信。

LAN Gossip

指的是局域网Gossip池,其中包含的节点都位于同一局域网或数据中心上。

WAN Gossip

指仅包含服务端的WAN Gossip池。这些Consul服务端主要位于不同的数据中心上,一般通过Internet或广域网进行通信。

RPC

远程过程调用。一种请求/响应模式,允许客户端向服务器发出请求。

serf

serf 和Consul一样,也是出自 Hashicorp 的开源项目, 实现了去中心化的 gossip协议,其中 gossip  协议定义了一种类似病毒感染的消息传播过程。一些著名的开源项目,如 Docker 和这里说的 Consul,网络管理和服务发现的核心组件是基于 serf  实现的,然而它们背后的 serf 似乎还鲜为人知,一方面其复杂的理论以及不完善的文档让人望而却步;另一方面,gossip 协议天然的数据 弱一致性 也制约了  serf 的使用场景。想深入了解的可以看这里:

https://www.infoq.cn/article/principle-and-impleme-of-de-centering-system-in-serf

https://www.serf.io/intro/index.html

创建一个数据中心,需要先创建一个服务端集群。创建一个服务端的推荐方法是使用-bootstrap-expect选项。此选项是创建的Consul服务器节点的预期数量,并在有那么多服务器可用时自动引导。为避免出现不一致和脑裂(多个服务器将其视为leader的集群)情况,必须要把-bootstrap-expect指定相同的值,或者在所有服务器上完全不指定任何值。只有指定值的服务器才会尝试引导群集。

假设正在启动一个三个服务节点的集群。可以通过分别提供-bootstrap-expect  3的标识来启动节点A,节点B和节点C。节点启动后,可以在服务输出中看到一条警告消息。

[WARN] raft: EnableSinglenode disabled, and no known peers. Aborting election.

警告表明节点期望有2个对等节点,但还不知道。下篇文章会介绍如何启动一个三个几点的Consul集群,到时候会用到这个命令。

接上一篇文章的启动命令

docker run \     -d \     -p 8500:8500 \     -p 8600:8600/udp \     --name=badger \     consul agent -server -ui -node=server -bootstrap-expect=1

之前在创建Consul节点的时候,指定了bootstrap-expect的值为1,这里就是一个单节点的Consul集群,因为是实验性的课程,所以这里设置了1,1个节点也是可以的,同样可以作为服务使用,只是在生产环境别这样设置,sh

端口

一个服务端Consul节点最多需要6个不同的端口才能正常工作,某些端口需要使用tcp,UDP或同时使用这两种协议。

在运行Consul之前,应该确保可以访问以下绑定端口。

用途默认端口
DNS: DNS服务 (TCP 或者 UDP)8600
HTTP: HTTP接口(只有TCP)8500
HTTPS: HTTPs接口建议端口 ,默认关闭(8501)*
grpc:gRPC接口建议端口,默认关闭 (8502)*
LAN Serf:    局域网端口(TCP和UDP)8301
Wan Serf:Serf WAN端口(TCP和UDP)8302
服务器:服务器RPC地址(仅TCP)8300
Sidecar Proxy Min:包含的最小端口号,用于自动分配的sidecar服务注册。21000
Sidecar Proxy Max:  包含的最大端口号,用于自动分配的sidecar服务注册。21255

端口用途

  • DNS接口 用于解析DNS查询

  • HTTP api 客户端通过HTTP API请求服务端

  • HTTPS API(可选)默认情况下处于关闭状态,但8501端口是多种工具默认使用的。

  • gRPC API(可选)当前,gRPC仅用于将xDS  API公开给Envoy代理。默认情况下它是关闭的,但是端口8502是各种工具默认使用的。在-dev模式下默认为8502。

  • Serf LAN 用于处理LAN中的gossip协议。所有代理都需要。

  • Serf WAN 服务器广域网服务器使用它来通过广域网传播到其他服务器。从Consul 0.8开始,WAN连接泛洪功能要求Serf WAN端口(TCP /  UDP)在WAN和LAN接口上进行监听。

  • RPC 服务器用来处理来自其他代理(agent)的请求。

到此,相信大家对“如何理解Consul的命令”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何理解Consul的命令

本文链接: https://www.lsjlt.com/news/83932.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解Consul的命令
    本篇内容主要讲解“如何理解Consul的命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Consul的命令”吧!AgentConsul集群中在后台长时...
    99+
    2024-04-02
  • 如何理解scp命令
    这篇文章主要介绍“如何理解scp命令”,在日常操作中,相信很多人在如何理解scp命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解scp命令”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!svn 删...
    99+
    2023-06-09
  • zookeeper中的zkServer.sh命令、zkCli.sh命令、四字命令该如何理解
    本篇文章给大家分享的是有关zookeeper中的zkServer.sh命令、zkCli.sh命令、四字命令该如何理解,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、zkSer...
    99+
    2023-06-03
  • 如何理解Msd,Undelete命令
    这篇文章主要介绍“如何理解Msd,Undelete命令”,在日常操作中,相信很多人在如何理解Msd,Undelete命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Msd,Undelete命令”的疑...
    99+
    2023-06-09
  • Maven命令该如何理解
    Maven命令该如何理解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、创建 Maven 工程①、在 src/main/java 新建包 com.ys.maven,然后在...
    99+
    2023-06-28
  • 如何理解Linux中的sudo命令
    这篇文章主要介绍“如何理解Linux中的sudo命令”,在日常操作中,相信很多人在如何理解Linux中的sudo命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Linux中的sudo命令”的疑惑有所...
    99+
    2023-06-13
  • 如何理解Linux下的Xargs命令
    这期内容当中小编将会给大家带来有关如何理解Linux下的Xargs命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。xargs 常常被大家忽略的一个命令,对它的一些用法很多人可能不熟悉,其实它是一个功能强...
    99+
    2023-06-15
  • Linux中的sed命令如何理解
    这篇文章主要为大家分析了Linux中的sed命令如何理解的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux中的sed命令如何理解”的知识吧。sed是一...
    99+
    2023-06-28
  • 如何理解Linux sed命令
    本篇文章给大家分享的是有关如何理解Linux sed命令,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Linux sed 命令详解Linux sed 命令是利用脚本处理文本文件...
    99+
    2023-06-05
  • 如何理解DOS中的pause命令
    本篇内容主要讲解“如何理解DOS中的pause命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解DOS中的pause命令”吧!在DOS命令中有一个命令是pause,它的作用是输出提示信息...
    99+
    2023-06-08
  • 如何理解Emm386、Lh、Memmaker命令
    本篇内容介绍了“如何理解Emm386、Lh、Memmaker命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  &nb...
    99+
    2023-06-09
  • 如何使用批处理命令的tree命令
    这篇文章主要讲解了“如何使用批处理命令的tree命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用批处理命令的tree命令”吧!tree ,在英语中的基本含义是“树”,在cmd中,t...
    99+
    2023-06-08
  • 如何理解GHOST参数及命令
    本篇内容主要讲解“如何理解GHOST参数及命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解GHOST参数及命令”吧!GHOST参数、命令操作指南 ghost所有的命令操作都是...
    99+
    2023-06-09
  • 如何理解aix命令中的capture和script
    今天就跟大家聊聊有关如何理解aix命令中的capture和script,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。将屏幕复制到文件(capture 和 script 命令)使用 c...
    99+
    2023-06-03
  • 如何学习和理解Linux命令
    这篇文章主要为大家展示了“如何学习和理解Linux命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何学习和理解Linux命令”这篇文章吧。1. ls命令首先ls命令,指列出目录内容(List...
    99+
    2023-06-16
  • Linux管道命令该如何理解
    这期内容当中小编将会给大家带来有关Linux管道命令该如何理解,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 示例假设我们想要知道 /etc/ 底下有多少文件,那么可以利用 ls /etc 来查...
    99+
    2023-06-28
  • 如何理解Linux chmod命令及权限
    这篇文章主要讲解了“如何理解Linux chmod命令及权限”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解Linux chmod命令及权限”吧!对于一条权限赋值命令:sudo chm...
    99+
    2023-06-13
  • Linux系统中ps命令如何理解
    这篇文章主要为大家分析了Linux系统中ps命令如何理解的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统中ps命令如何理解”的知识吧。ps?就是...
    99+
    2023-06-28
  • 如何理解批处理命令目录跳转
    这篇文章主要讲解了“如何理解批处理命令目录跳转”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解批处理命令目录跳转”吧!当我们需要处理不同路径下的文件的时候,很可能需要切换目录,这个时候...
    99+
    2023-06-08
  • 如何理解Linux基础命令中文本流编辑sed命令
    如何理解Linux基础命令中文本流编辑sed命令,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。与vim不同,sed是一种非交互式的文本编辑器,同时它又是面向字符流的,每行数...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作