SpringCloud Consul基础入门与使用实践总结

【1】Consul简介

官网地址:https://www.consul.io/intro/index.html

下载地址:https://www.consul.io/downloads.html

中文文档:https://www.springcloud.cc/spring-cloud-consul.html

① 基础概念

Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发。

提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。

它具有很多优点。包括:

  • 基于 raft 协议,比较简洁;
  • 支持健康检查,
  • 同时支持 HTTP 和 DNS 协议
  • 支持跨数据中心的 WAN 集群
  • 提供图形界面
  • 跨平台,支持 Linux、Mac、Windows

② 应用能力

在这里插入图片描述

  • 服务发现 : 提供HTTP和DNS两种发现方式。
  • 健康监测 : 支持多种方式,HTTP、TCP、Docker、Shell脚本定制化监控
  • KV存储 : Key、Value的存储方式
  • 多数据中心 : Consul支持多数据中心
  • 可视化Web界面

③ windows下安装说明

官网安装说明:https://learn.hashicorp.com/consul/getting-started/install.html

下载地址:https://www.consul.io/downloads.html ,如下所示点击下载会得到一个exe安装文件。

在这里插入图片描述

傻瓜式安装后,我们以开发模式启动:

consul agent -dev

通过以下地址可以访问Consul的首页:http://localhost:8500

【2】应用实践

服务分为提供者和消费者,我们从两方面进行实践。

① 服务提供者

pom文件引入依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

yml文件进行配置:

###consul服务端口号
server:
  port: 8006

spring:
  application:
    name: consul-provider-payment
####consul注册中心地址
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        #hostname: 127.0.0.1
        service-name: ${spring.application.name}

主启动类添加注解:

@EnableDiscoveryClient

② 服务消费者

pom文件引入依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

yml文件修改配置:

###consul服务端口号
server:
  port: 80

spring:
  application:
    name: cloud-consumer-order
####consul注册中心地址
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        #hostname: 127.0.0.1
        service-name: ${spring.application.name}

主启动类添加注解:

@EnableDiscoveryClient

可以看到,服务提供者和发现者关于Consul的配置是一样的。

【3】Eureka、Zookeeper与Consul三者异同

组件 语言 CAP 健康检查 对外接口
Eureka Java AP 可配支持 HTTP
Consul Go CP 支持 HTTP/DNS
Zookeeper Java CP 支持 客户端

① CAP

从CAP理论来进行分析。 众所周知,所有的中间件最多只能同时较好的满足两个。

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,

因此,根据 CAP 原理分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:

  • CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
  • CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。
  • AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

在这里插入图片描述

② AP(Eureka)

当网络分区出现后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。

结论:违背了一致性C的要求,只满足可用性和分区容错,即AP

在这里插入图片描述

③ CP(ZK/Consul)

当网络分区出现后,为了保证一致性,就必须拒接请求,否则无法保证一致性

结论:违背了可用性A的要求,只满足一致性和分区容错,即CP。

在这里插入图片描述

相关推荐

  1. Gorm 入门介绍基本使用

    2024-06-07 00:22:03       30 阅读
  2. Docker详细安装使用教程:从入门实践

    2024-06-07 00:22:03       15 阅读
  3. Python实战:爬虫基础Scrapy框架入门

    2024-06-07 00:22:03       21 阅读
  4. DOS编程入门:探索基础、深入技巧实战应用

    2024-06-07 00:22:03       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 00:22:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 00:22:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 00:22:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 00:22:03       18 阅读

热门阅读

  1. 维纳运动的概念

    2024-06-07 00:22:03       9 阅读
  2. 后端开发面经系列 -- 同程旅行C++一面

    2024-06-07 00:22:03       8 阅读
  3. 力扣 383题 赎金信 记录

    2024-06-07 00:22:03       8 阅读
  4. 深度学习和计算机视觉中的backbone

    2024-06-07 00:22:03       10 阅读
  5. 【HarmonyOS】Stage 模型 - UIAbility 的启动模式

    2024-06-07 00:22:03       8 阅读
  6. 力扣524. 通过删除字母匹配到字典里最长单词

    2024-06-07 00:22:03       6 阅读
  7. GPT-4:人工智能领域的新里程碑

    2024-06-07 00:22:03       9 阅读
  8. 江苏服务器租用的优势有哪些?

    2024-06-07 00:22:03       8 阅读
  9. Day34 事件聚合器实现消息过滤功能

    2024-06-07 00:22:03       8 阅读