微服务—Consul实现注册中心

前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、consul简介

1.1 Consul基础介绍

服务发现是基于微服务架构的关键原则之一。尝试配置每个客户端或某种形式的约定可能非常困难,可以非常脆弱。Consul通过HTTP API和DNS提供服务发现服务。Spring Cloud Consul利用HTTP API进行服务注册和发现。这不会阻止非Spring云应用程序利用DNS界面。Consul代理服务器在通过八卦协议进行通信的群集中运行,并使用筏式协议协议。
Consul中文文档

1.2 Linux下Consul的安装

  • 前往官网下载 压缩包然后上传服务器:Consul官网
  • 解压压缩包:unzip xxxxxx.zip;如果没有unzip命令,执行yum -y install unzip
  • 安装完成后通过./consul检查是否安装成功;
    在这里插入图片描述

1.3 Linux下Consul启动

后台运行命令nohup ./consul agent -server -ui -bootstrap-expect=1 -client=0.0.0.0 -bind=192.168.1.6 -data-dir=/opt/Consul/data > /opt/Consul/logs/consul.log &

控制台启动命令./consul agent -server -ui -bootstrap-expeect=1 -client=0.0.0.0 -bind=192.168.1.6 -data-dir=/opt/Consul/data

参数解释

  • -server:表示是以服务端身份启动;
  • -bind:表示绑定到哪个IP地址(有些服务器可能有多块网卡,需要进行配置);
  • -client:指定客户端访问的ip,0.0.0.0表示所有客户端都可访问;
  • -bootstrap-expect=3:表示server集群中最少的节点个数为3,低于这个值集群就不会工作(原理类似于Zookeeper,通常集群中的节点个数为奇数,方便进行选举,consul采用的是 raft算法);
  • -data-dir:表示指定数据的存放目录(目录必须存在);
  • -node:表示节点在 web-ui界面上显示的名称;
  • -ui:表示显示管理界面的web-ui

1.4 Linux下Consul集群的搭建

  • 集群角色分配
序号节点IP节点名称角色
1192.168.1.6server-6server & web ui
2192.168.1.7server-7server
3192.168.1.8server-8server
  • 启动服务器(后台方式,服务器1需要开启界面模式)
# 服务器1
nohup ./consul agent -server -client=0.0.0.0 -ui -bind=192.168.1.6 -bootstrap-expect=2 -data-dir=/opt/Consul/data -node=server-6 > /opt/Consul/logs/consul.log &

# 服务器2
nohup ./consul agent -server -client=0.0.0.0 -bind=192.168.1.7 -bootstrap-expect=2 -data-dir=/opt/Consul/data -node=server-7 > /opt/Consul/logs/consul.log &

# 服务器3
nohup ./consul agent -server -client=0.0.0.0 -bind=192.168.1.8 -bootstrap-expect=2 -data-dir=/opt/Consul/data -node=server-8 > /opt/Consul/logs/consul.log &

在这里插入图片描述
启动提示重定向错误不知道为什么,但是通过./consul members能够看到对应的节点就说明成功启动。

  • 集群加入(让server-7、server-8加入到server-6)
    在server-7、server-8中分别执行命令:./consul join 192.168.1.6
    在这里插入图片描述
    ./consul info:查看当前节点的具体信息
    在这里插入图片描述

./consul members:查看当前节点集群信息
在这里插入图片描述

  • 主界面节点信息
    在这里插入图片描述

二、采用Consul作为服务注册中心

类似于Eureka和Zookeeper的配置,需要分别配置pom.xml、application.yml等等。

pom.xml

        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-consul-discovery -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>

application.yml

server:
  port: 8084
spring:
  application:
    name: cloud-provider-payment添加链接描述
  cloud:
    consul:
      host: 192.168.1.6
      port: 8500
      discovery:
        service-name: ${spring.application.name}
        hostname: 192.168.1.6
        heartbeat:    #这里必须加上心跳检测,否则服务检测不会通过
          enabled: true

其余配置类似。

三、CAP理论及运用

3.1 CAP理论解释

CAP:C(Consistency)强一致性、A(Availablity)高可用性、P(Partition Tolerance)分区容错性。
分布式系统不可能同时满足三个特性,最多只能满足其中两个特性。根据实际情况选择不同的特性组合对应的技术栈。

3.2 三种注册中心对比

Eureka:主要支持的是AP,强调高可用和分区容错;
ConsulZookeeper:主要支持CP,强调数据一致性和分区容错。
在这里插入图片描述
三种注册中心的服务架构体现在:
Eureka拥有一个自我保护机制,当在90s内如果有过多的心跳包丢失,Eureka不会直接注销该服务,而是选择采用保护机制不去注销服务,等到90s到期如果仍然不能接受心跳包就直接注销,这种为了保证最大吞吐量而牺牲数据一致性的思想就是AP;
Zookeeper采用创建临时节点的机制来注册服务,由于是临时节点在连接断开时就会立刻被删除,对应着服务就被注销,这种思想对应的就是CP;
Consul在微服务器断开时会立刻停止服务,来保证数据一致性原则。

文章参考:
在linux下consul注册中心的安装及启动
linux安装consul集群
Consul注册中心注册的服务总是红叉 (All service checks failing)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
微服务注册中心微服务架构中的一个关键组件,用于管理和维护微服务的注册和发现。在.NET微服务架构中,常用的微服务注册中心包括Consul、Eureka和Zookeeper等。这些注册中心提供了服务注册、服务发现和负载均衡等功能,使得微服务之间可以方便地进行通信和协作。 Consul是一个开源的分布式服务发现和配置管理系统,它提供了一个可靠的注册中心,用于注册和发现微服务Consul使用Gossip协议进行节点之间的通信,支持ACL访问控制,并采用Raft算法保证服务的高可用性。通过Consul微服务可以注册自己的服务实例,并通过查询接口来发现其他服务的实例,从而实现微服务之间的通信。 Eureka是Netflix开源的服务发现组件,也是一个常用的微服务注册中心。它使用RESTful接口进行服务注册和发现,并提供了负载均衡和故障转移等功能。Eureka采用了客户端-服务器架构,其中Eureka Server负责管理服务注册和发现,而Eureka Client则负责将自己的服务注册到Eureka Server,并从Eureka Server获取其他服务的信息。 Zookeeper是一个分布式协调服务,也可以用作微服务注册中心。它提供了一个可靠的分布式数据存储和协调机制,用于管理和维护微服务的注册和发现。Zookeeper使用ZAB协议进行节点之间的通信,并提供了高可用性和一致性保证。微服务可以将自己的服务注册到Zookeeper,并通过查询接口来发现其他服务的实例。 总之,.NET微服务架构中的注册中心是用于管理和维护微服务的注册和发现的关键组件。常用的微服务注册中心包括Consul、Eureka和Zookeeper等,它们提供了服务注册、服务发现和负载均衡等功能,使得微服务之间可以方便地进行通信和协作。 #### 引用[.reference_title] - *1* *3* [asp.net微服务架构(概述)](https://blog.csdn.net/CrtLife/article/details/117029560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [『注册中心Consul微服务注册中心的使用及相关集群搭建](https://blog.csdn.net/qq_34202873/article/details/106429687)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值