nodejs微服务:服务发现与Consul

这篇具有很好参考价值的文章主要介绍了nodejs微服务:服务发现与Consul。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

服务发现

  • 我们在做微服务开发的时候,客户端的一个接口可能需要调用N个服务,客户端必须知道所有服务的网络位置(ip+port),如下所示
  • 客户端 Client
    • 服务A (IP 1, PROT 1)
    • 服务B (IP 2, PROT 2)
    • 服务C (IP 3, PROT 3)
    • 服务N (IP N, PROT N)
  • 客户端需要知道目前所有可用的服务端的ip和端口
  • 以往的做法是把服务的地址放在配置文件或者数据库中,这样就有以下几个问题:
    • 需要配置N个服务的网络位置,加大配置的复杂性
    • 服务的网络位置变化,需要改变每个调用者的配置
    • 集群的情况下,难以做负载(反向代理的方式除外)
  • 总结起来一句话:服务多了,配置很麻烦,问题一大堆
  • 所以现在就选择服务发现来解决这些问题,具体设计如下:
    • 服务发现系统
      • 服务A (注册IP+PORT)
      • 服务B (注册IP+PORT)
      • 服务C (注册IP+PORT)
      • 服务N (注册IP+PORT)
    • 客户端 <------ 根据服务名获取IP+PORT ------ 服务发现系统
  • 与之前解决方法不同的是,加了个服务发现模块,服务端把当前自己的网络位置注册到服务发现模块(这里注册的意思就是告诉)
  • 服务发现就以K-V的方式记录下,K一般是服务名,V就是IP:PORT
  • 服务发现模块定时的轮询查看这些服务能不能访问的了(这就是健康检查)
  • 客户端在调用服务A-N的时候,就跑去服务发现模块问下它们的网络位置,然后再调用它们的服务
  • 这样的方式是不是就可以解决上面的问题了呢?
  • 客户端完全不需要记录这些服务的网络位置,客户端和服务端完全解耦!

常见的服务发现框架(微服务注册中心)

  • Etcd:k8s 内嵌的服务发现
  • Mdns:以前mdns是go-micro中默认自带的服务发现go-micro的默认服务发现也是consul
  • Consul:是一个分布式高可用的系统,是为基础设施提供服务发现和服务配置的工具,常应用于grpc、 go-micro中
  • Zookeeper:是 Apache 公司为分布式应用设计的协调服务,java中较常用
  • Eureka:Netflix 开源的一款提供服务注册和发现的产品,已闭源,提供了完整的服务注册和发现,springcloud中最核心的组件之一,需要手动配置 Eureka Server 服务器
  • Nacos:Alibaba 开源的一款专注于动态服务发现,配置和服务管理的组件

关于服务发现框架Consul

  • Consul是Go语言写的开源的服务器发现软件,用于实现分布式系统的服务发现与配置
  • 包含多个组件, 但是作为一个整体, 为你的基础设施提供服务发现和服务配置的工具
  • 它提供以下关键特性:
    • 服务发现:consul通过DNS或者HTTP接口使服务注册和服务发现变的很容易,一些外部服务,例如saas提供的也可以一样注册
    • 健康检查:健康检测使consul可以快速的告警在集群中的操作。和服务发现的集成,可以防止服务转发到故障的服务上面 (心跳机制)
    • 键/值存储:一个用来存储动态配置的系统。提供简单的HTTP接口,可以在任何地方操作
    • 多数据中心:无需复杂的配置,即可支持任意数量的区域
      • 官方建议:最好是三台或者三台以上的consul在运行,同名服务最好是三台或三台以上
      • 默认可以搭建集群
    • Web管理界面:官方提供web管理界面
      • 官网:https://www.consul.io
      • Git地址:https://github.com/hashicorp/consul
    • 负载均衡:可实现负载均衡功能

Consul安装

  • Consul用Golang实现,因此具有天然可移植性 (支持 Linux、windows和macOS),安装包仅包含一个可执行文件
  • Consul安装非常简单,只需要下载对应系统的软件包并解压后就可使用

1 ) Windows安装

  • 地址: https://www.consul.io/downloads 或 :https://releases.hashicorp.com/consul
  • 下载consul
  • 解压consul到某一个目录
  • 配置consul到环境变量
  • 测试:consul -v

2 ) Mac安装

  • 方式1:

    • $ brew tap hashicorp/tap
    • $ brew install hashicorp/tap/consul
  • 方式2:

    • 下载consul,地址:https://releases.hashicorp.com/consul,注意下载非ent的,选择 consul_x.xx.x_darwin_amd64.zip (按照自己机型cpu架构选择)
    • 解压consul到某一个目录,配置consul到环境变量,或者下载解压后,将文件放置在 /usr/local/bin 目录下
    • 查看安装情况:$ consul --version

3 ) Linux安装文章来源地址https://www.toymoban.com/news/detail-408837.html

  • 方式1:
    • 1 )Ubuntu
    • $ wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
    • $ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
    • $ sudo apt update && sudo apt install consul
    • 2 )CentOS
    • $ sudo yum install -y yum-utils
    • $ sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
    • $ sudo yum -y install consul
  • 方式2:
    • 下载consul,地址:https://releases.hashicorp.com/consul
    • 解压 consul到某一个目录, 配置consul到环境变量
      • [root@localhost ~]# mkdir -p usr/local/consul
      • [root@localhost ~]# unzip consul_1.11.4_linux_arm64.zip -d /usr/local/consul/
      • [root@localhost ~]# cd /usr/local/consul/
      • [root@localhost ~]# ./consul -v
    • 注意:如果要全局使用请把consul加入到环境变量,或者下载解压后,将文件放置在 /usr/local/bin 目录下
    • 安装 Consul后,通过执行 consul命令,你可以看到命令列表的输出: $ consul

到了这里,关于nodejs微服务:服务发现与Consul的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • prometheus基于consul的服务发现

    https://developer.hashicorp.com/consul/install http://IP:8500/ui/ vim /app/consul/etc/nodes.json consul reload #加载配置文件 增加如下配置 systemctl restart prometheus 可以发现现在获取的Targets里面有consul的字段 https://www.bilibili.com/video/BV1PT4y1P7bX/?from=searchseid=851756632097160928

    2024年02月20日
    浏览(56)
  • Docker consul、容器服务更新与发现

    Consul服务器:192.168.188.17,consul服务,nginx服务,consul-template守护进程 Registrator服务器:192.168.188.11,registrator容器,nginx容器 建立consul服务器 mkdir /opt/consul cp consul_0.9.2_linux_amd64.zip /opt/consul cd /opt/consul unzip consul_0.9.2_linux_amd64.zip mv consul /usr/local/bin/ 设置代理 在后台启动consul服务

    2024年01月19日
    浏览(27)
  • 【Docker】Consul的容器服务更新与发现

    服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服

    2024年02月15日
    浏览(32)
  • Docker 之 Consul容器服务更新与发现

    服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端必须要知道所有后端服

    2024年02月15日
    浏览(30)
  • Eureka、Zookeeper、Consul服务注册与发现

    一、Eureka服务注册与发现 1.1 概念 Eureka 是 Netflix 公司开源的一个服务注册与发现的组件 。 Eureka 和其他 Netflix 公司的服务组件(例如负载均衡、熔断器、网关等) 一起,被 Spring Cloud 社区整合为Spring-Cloud-Netflix 模块。 Eureka 包含两个组件:Eureka Server (注册中心) 和 Eureka Clien

    2024年02月02日
    浏览(34)
  • Docker consul的容器服务注册与发现

    nacos(转给微服务)、Eureka和consul一样,也是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决

    2024年02月11日
    浏览(26)
  • Docker consul容器服务自动发现和更新

    目录 一、什么是服务注册与发现         二、Docker-consul集群 1.Docker-consul 2.registrator 3.Consul-template 三、Docker-consul实现过程 四、Docker-consul集群配置 1.下载consul服务 2.web服务器启动多例nginx容器,使用registrator自动发现 3.使用nginx做反向代理,使用Consul-template配置自动修改配

    2024年02月10日
    浏览(28)
  • Docker consul 容器服务自动发现和更新

    目录 一、什么是服务注册与发现 二、Docker-consul集群 1.Docker-consul consul提供的一些关键特性 2.registrator 3.Consul-template 三、Docker-consul实现过程 以配置nginx负载均衡为例 先配置consul-agent ,有两种模式server和client 四、Docker-consul集群配置 下载consul服务 常用启动选项 web服务器启动多

    2024年02月10日
    浏览(32)
  • Docker consul的容器服务更新与发现

    什么是服务注册与发现 服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分布式架构,起初的解决手段是在服务前端负载均衡,这样前端

    2024年02月08日
    浏览(33)
  • Docker+Consul+Registrator 实现服务注册与发现

    第四阶段 时  间:2023年8月8日 参加人:全班人员 内  容: Docker+Consul+Registrator 实现服务注册与发现 目录 一、服务注册中心引言 CAP理论是分布式架构中重要理论: 二、服务注册中心软件 (一)ZooKeeper (二)Eureka (三)Etcd (四)Consul 常用的服务发现产品之间的比较: 三

    2024年02月13日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包