nodejs微服务:Consul的角色、命令与使用

启动consul服务命令 终端命令行下启动consul的dev模式后,通过members命令查看节点信息,除此以外,还可以使用Http的浏览器访问的模式,查看节点信息。consul启动,正常运行后,打开浏览器,在地址栏中键入:http://localhost:8500。集群中只包含一个节点,唯一的节点被选举成为Leader节点。在consul启动后,可以通过命令查看节点的信息。Type:节点的类型,有两种:server、client。在节点运行终端中执行:ctrl + c,表示退出节点运行。在新终端中,执行如上操作。 阅读详情

概述

  • 完成consul的安装后,必须运行agent
  • agent可以运行为 server模式、client模式或者dev模式
  • 每个数据中心至少必须拥有一台server
  • 建议在一个集群中有3或者5个server
  • 部署单一server,在出现失败时,会不可避免的出现数据丢失

consul的角色

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

Consul相关命令

  • 使用命令 consul -h 可以查看consul支持的所有参数,而且每个参数里面还支持其他参数
    $ consul -h
    Usage: consul [--version] [--help] <command> [<args>]
    
    Available commands are:
        acl             Interact with Consul's ACLs
        agent           Runs a Consul agent
        catalog         Interact with the catalog
        config          Interact with Consul's Centralized Configurations
        connect         Interact with Consul Connect
        debug           Records a debugging archive for operators
        event           Fire a new event
        exec            Executes a command on Consul nodes
        force-leave     Forces a member of the cluster to enter the "left" state
        info            Provides debugging information for operators.
        intention       Interact with Connect service intentions
        join            Tell Consul agent to join cluster
        keygen          Generates a new encryption key
        keyring         Manages gossip layer encryption keys
        kv              Interact with the key-value store
        leave           Gracefully leaves the Consul cluster and shuts down
        license         Interact with Consul Enterprise licensing
        lock            Execute a command holding a lock
        login           Login to Consul using an auth method
        logout          Destroy a Consul token created with login
        maint           Controls node or service maintenance mode
        members         Lists the members of a Consul cluster
        monitor         Stream logs from a Consul agent
        namespace       Interact with Consul Enterprise Namespaces
        operator        Provides cluster-level tools for Consul operators
        partition       Interact with Consul Enterprise admin partitions
        peering         Create and manage peering connections between Consul clusters
        reload          Triggers the agent to reload configuration files
        rtt             Estimates network round trip time between nodes
        services        Interact with services
        snapshot        Saves, restores and inspects snapshots of Consul server state
        tls             Builtin helpers for creating CAs and certificates
        troubleshoot    CLI tools for troubleshooting Consul service mesh
        validate        Validate config files/directories
        version         Prints the Consul version
        watch           Watch for changes in Consul
    
  • agent:指令是consul的核心,它运行agent来维护成员的重要信息、运行检查、服务宣布、查询处理等等。
  • consul agent -dev 开发者模式启动consul
    • 开发阶段我们可以使用下面命令启动consul ,执行 consul agent -dev 启动了一个consul 服务端
    • $ consul agent -dev
    • 访问 http://localhost:8500 可以打开Web管理界面

Consul和Grpc结合使用

1 ) 开发模式

  • 主要用于开发阶段(dev模式也是server模式)

2 ) 启动consul

  • 开发阶段通过 consul agent -dev 启动consul

3 ) 下载consul依赖

4 ) 把grpc服务注册到consul上

const Consul = require('consul');
const consul = new Consul({ host: '127.0.0.1', port: 8500, promisify: true }); // 客户端需要加 promisify
const serviceName = "someServer"
consul.agent.service.register(
  {
    name: serviceName,
    address: '127.0.0.1',
    port: 3000,
    check: {
      tcp: "127.0.0.1:3000",
      interval: '10s', // 每轮间隔
      timeout: '5s', // 超时时间
    }
  },
  function(err, result) {
    if (err) {
      console.error(err);
      throw err;
    } 
    console.log(result) 
    console.log(serviceName + ' 注册成功!'); 
  }
)
  • 编写多个微服务,启动它们,直接访问:http://localhost:8500/
  • 就可以自动重定向到consul 的web管理界面,可以查看服务列表

5 ) 注销某个服务

const Consul = require('consul'); 
// 1、获取consul实例
const consul = new Consul({ host: '127.0.0.1', port: 8500, promisify: true });
const serviceName = "someServer";
// 2、注销微服务
consul.agent.service.deregister(serviceName)
consul集群搭建教程 - 多机集群 搭建consul集群 阅读详情

相关推荐

ClawNet:构建跨用户自主协同的智能体网络架构与实践

智能体(Agent)作为人工智能领域的关键技术,通过模拟人类决策过程,结合大语言模型(LLM)与工具调用能力,实现自主任务执行。其核心原理在于将复杂问题分解为可执行的子任务,并通过规划、记忆与反馈机制动态调整行为。这一技术价值在于将人类从重复性劳动中解放,提升工作效率与决策质量,广泛应用于自动化办公、智能客服、代码生成等场景。随着应用深入,单一智能体在复杂任务中面临局限,多智能体协同成为必然趋势。本文聚焦于ClawNet这一前沿概念,探讨如何构建一个支持跨用户、跨任务自主协同的智能体网络,实现真正的“群体智

weixin_30879833的博客 523

nodejs微服务:服务发现与Consul

我们在做微服务开发的时候,客户端的一个接口可能需要调用N个服务,客户端必须知道所有服务的网络位置(ip+port)

Wang的专栏 1211

Nodejs分布式解析

摘要 本文探讨了分布式系统的基础概念及其在Node.js环境中的应用。首先介绍了分布式系统的核心要素,包括节点、集群、网络分区等概念,并深入解析了CAP定理和BASE理论在系统设计中的指导作用。随后分析了Node.js在分布式环境中的关键角色,涵盖微服务架构、负载均衡、服务发现、数据分片、消息队列等技术实现。文章还详细阐述了分布式解析的需求与挑战,包括大规模数据处理、高并发应对、容错机制等需求,以及数据一致性、负载均衡、通信开销等技术难点。通过Redis、Nginx、Consul等工具的代码示例,展示了No

天涯学馆 552

nodejs微服务:Consul集群

Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置 Consul 是分布式的、高可用的、可横向扩展的, 完成consul的安装后,必须运行agent

Wang的专栏 843

某头部能源集团“数据治理”到“数智应用”跃迁案例剖析

本次案例能源企业实现了从“数据可用”到“指标驱动”再到“智能决策”的全链条升级,标志着集团在数字化、智能化治理能力上的系统跃升,构建起面向未来的数智管理新范式。

a958014226的博客 1258

汇川PLC和PLC之间ModebusTCP通讯

然后在全局变量中创建相应的变量关联IW和QW的寄存器创建全部变量//AM402作为主站——读H3U(D12-D21)//AM402作为主站——写给H3U(D200-D209)或者使用数组的方式。

panjinliang066333的博客 3万+

最通俗易懂的consul安装与启动

Linux安装consul

永远在路上 4284

USB3.0一致性测试方案

为各测试项目具体测试结果包括脉冲串突发时间、脉冲串重复时间、时钟周期以及眼图等完整USB3.0测试项目,工程师可以看到各项测试的具体结果方便观察。RIGOL 提供了一套完善的工具,包括数字示波器、专业的测试夹具以及全自动一致性测试软件,使得USB 3.0设备设计人员能够高效精确地进行信号捕捉、测试与分析。报告第二部分测试摘要,在此可以看到USB3.0测试所有测试项目,并且可以观看到测试是否正常,可以帮助工程师更好的判断测试结果。,以简化下载、存储以及对于多媒体的大量内容的共享。

2409_87378937的博客 2531

consul 超时_Node.js + Consul 实现服务注册、健康检查、配置中心

本篇主要介绍了 Node.js 如何与 Consul 进行集成,Consul 只是服务注册的一种实现,还有其它的例如 Zookeeper、Etcd 等,服务注册发现在微服务架构中扮演这一个重要的角色,伴随着服务的大量出现,服务与服务之间的配置管理、运维管理也变的难以维护,通过 Consul 可以解决这些问题,实现服务治理、服务监控。关于 Consul 的更多知识点不在这里赘述,但是在学习...

weixin_39641876的博客 516

解决nfs挂载根文件系统报错:VFS: Unable to mount root fs via NFS, trying floppy.

解决nfs挂载根文件系统报错的问题:VFS: Unable to mount root fs via NFS, trying floppy.

汉尼拔勇闯天涯 4577

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

丨汀、的博客 2651

vue3+nodejs基于微服务架构的校内电动车租赁系统的设计与实现

Vue 采用组件化开发模式,开发者可以将页面拆分成一个个独立的组件,每个组件都有自己的 HTML、CSS 和 JavaScript 代码,实现了高度的复用性和可维护性。MySQL 是关系型数据库管理系统的代表, 因为MySQL是其免费开源的,而且MySQL的功能已经足够用对于学习和中小型企业来讲,所以开发中小型网站都会选择MySQL作为网站的数据库。毕设项目前端使用vue框架,后端使用js的node,满足用户的讯息接受,信息搜索,资讯查看的操作。需要成品或者定制,加我们的时候,不满意的可以定制。

wx_bishe288的博客 1308

后悔没早点知道!用AI只需四步,一次性讲清高质量论文引言写法(附公式+AI指令)

帮我写SCI 论文撰写引言的“研究背景与重要性”,要求从本研究所属领域的小背景切入,使用现在时态描述该领域的总体状况与发展趋势,突出其在学术研究、实际应用或社会层面的重要价值,并通过一个吸引人的钩子开头,如关键事实、现实问题或学术热点,引导读者关注本主题的重要性。梳理你所在领域和你研究相关的关键成果,但不能罗列所有文献,重点抓核心脉络,这部分最重要的实际上是让你了解别人的研究脉络,然后在每个关键的节点上,引用几篇关键参考文献作支撑,来体现你对领域的熟悉度就可以了。3)研究缺口模糊,没法突出问题的真实价值;

qq_64378896的博客 118

Node.js + Consul 实现服务注册、健康检查、配置中心

作者:五月君 原文:Nodejs技术栈 本篇主要介绍了 Node.js 如何与 Consul 进行集成,Consul 只是服务注册的一种实现,还有其它的例如 Zookeeper、Etcd 等,服务注册发现在微服务架构中扮演这一个重要的角色,伴随着服务的大量出现,服务与服务之间的配置管理、运维管理也变的难以维护,通过 Consul 可以解决这些问题,实现服务治理、服务监控。 关于 Consul 的更多知识点不在这里赘述,但是在学习本节之前还是希望您能先了解下,请移步我之前写的微服务服务注册发现之 Cons.

神以灵的博客 2179

材料仿真软件:Quantum Espresso_(15).声子与振动模式计算

通过上述步骤和代码示例,您应该能够使用 Quantum Espresso 进行声子与振动模式的计算。声子计算是材料科学研究中的重要工具,可以帮助我们更好地理解和设计材料的性能。希望本节内容对您有所帮助。

kkchenjj的博客 1185

A133在Android13上适配百兆以太网

NOTE] 【技术支持问题】问题背景/平台。

mangofu的博客 414

百度网盘Mac版限速破解:免费把100KB/s加速到7MB/s的一键安装教程

下载一个20GB的游戏安装包,百度网盘Mac版的进度条却钉死在100KB/s,按这个速度估算要跑55小时以上。BaiduNetdiskPlugin-macOS 就是一个针对 macOS 的免费限速破解插件,装完后同一个文件的速度能到 7.08MB/s,头像旁还会挂上 SVIP 角标。本文只解决4件事:怎么装、怎么验证生效、不生效怎么自查、怎么卸。读完全文约3分钟。 ## 前后效果对比:100KB

gitblog_00481的博客 105

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

OpenClaw多代理协同工作模式配置与优化指南

多代理系统(Multi-Agent System)是分布式人工智能的重要实现形式,其核心原理是通过多个智能代理的协同工作来解决复杂问题。在自动化任务处理领域,这种架构展现出独特的技术价值:既能保持单个代理的专业性,又能通过高效通信实现整体智能。OpenClaw框架的多代理协同模式特别适合金融分析、智能运维等需要多领域知识融合的场景。本文以金融数据分析为典型案例,详细讲解如何配置代理角色分工、优化通信机制,并实现动态负载均衡。通过合理使用黑板系统和发布/订阅模式,开发者可以构建出既能处理实时市场数据又能进行深

weixin_30516243的博客 347

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

DevOps-Guide 技能地图:从开发到生产的全栈 DevOps 知识体系与实践指南

DevOps-Guide 仓库中的 [DevOps/README.md](https://link.gitcode.com/i/8e68fd3cf7b5a97244834b84423d4b6e) 以一张"Topic Wise"技能清单,勾勒出 DevOps 工程师从开发到生产环境所需掌握的完整知识体系:编程语言、操作系统、服务器维护、终端命令、基础设施即代码、监控与可观测性、云供应商、日志管理与版

gitblog_00583的博客 30

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

企业级AI对话前端架构升级:深度解析SillyTavern 1.18.0的3种高可用部署方案

SillyTavern 1.18.0作为面向高级用户的LLM前端界面,在架构设计、性能优化和安全增强方面进行了全面升级。本次升级不仅提升了系统稳定性,还引入了多种部署方案,为企业级应用提供了更加灵活的技术选择。本文将深入分析SillyTavern 1.18.0的技术架构升级价值,并提供三种高可用部署方案的实施指南。 ## 技术背景与升级必要性分析 随着AI对话系统的普及,企业对前端界面的性能、

gitblog_01129的博客 514

Docker容器网络实战:Apollo中Weave与Traefik构建跨主机通信与负载均衡

Apollo是基于Apache Mesos和Docker的云原生应用开源平台,通过Weave实现跨主机容器通信,结合Traefik提供高效负载均衡能力。本文将详细介绍如何在Apollo项目中配置这两个核心组件,构建稳定可靠的容器网络架构。 ## 为什么需要专业容器网络解决方案? 传统Docker网络存在两大痛点:容器只能在同一主机通信,跨主机需手动配置端口映射;动态扩缩容时服务发现与负载均衡难

gitblog_00402的博客 242

环境变量管理密钥:四层架构与多项目实践指南

环境变量是软件配置管理的基础机制,其核心原理在于将应用运行所需的参数(如API密钥、数据库连接串)从代码中剥离,交由外部运行时环境注入。这种分离带来了显著的技术价值:它提升了应用的安全性,避免了敏感信息随代码泄露;增强了可移植性,使同一份代码能无缝适配开发、测试、生产等不同环境;并规范了团队协作流程。在实际应用场景中,尤其是在管理类似Taotoken这样的第三方服务密钥时,一套健壮的环境变量管理方案至关重要。本文深入探讨了基于四层架构(源头注入、验证转换、应用使用、审计轮换)的设计思想,并提供了在多项目复杂

weixin_33778544的博客 358

NixOS 19.03 发行说明深度解读:新特性、新服务与升级兼容性全指南

NixOS 19.03(代号 "Koi",发布于 2019/04/11)是 NixOS 发行周期中的一个重要版本。本文以官方发行说明为骨架,结合当前 nixpkgs 仓库中的模块源码,系统梳理该版本的核心亮点(默认 Python 3.7、Pantheon 桌面、Kubernetes 模块重构、systemd 服务 chroot 隔离)、新增服务模块,以及从 18.09 升级时需要注意的全部向后不兼

gitblog_00272的博客 369

Golang 在十二赞的深度应用

Golang 在十二赞的深度应用我们是“十二赞”,一个致力于帮助电商卖家进入小程序的小团队,我们的主页是www.12zan.cn/。在实际运行中,我们使用了大量由golang写就的小工具,几乎每一个工具代码量都超短,一般在200行左右就完成了一个独立的功能,同时担当了相当重要的角色;像代理服务器,代码量一共500行多一点点,却是我们的核心支柱,压测时QPS也直追nginx,表现优异。基于Docke...

weixin_34248849的博客 121

消息处理核心:解析、去重与防抖在分布式系统中的应用实践

在分布式系统和微服务架构中,消息的可靠处理是保障数据一致性与系统稳定性的基石。其核心原理在于构建一个健壮的消息流入管道,对异构数据进行标准化解析,并通过去重机制确保幂等性,防止业务逻辑错误。这一技术价值在于显著提升系统的鲁棒性和资源利用率,是构建高可用服务的关键环节。典型的应用场景包括电商订单处理、支付回调、物联网数据上报等高频或关键业务领域。本文以 monitor-inbox.ts 模块为例,深入探讨了如何通过分层架构实现消息的解析、去重和防抖,其中重点阐述了基于Redis的去重策略与内存管理的防抖实现,

weixin_33795093的博客 395
上一篇: nodejs微服务:服务发现与Consul
下一篇: nodejs微服务:Consul集群
Wang's Blog
博客等级 码龄12年 7433粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值