SpringCloud 学习笔记之Consul

Consul

一、Consul简介

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

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

它具有很多优点。包括: 基于 raft 协议,比较简洁; 支持健康检查, 同时支持 HTTP 和 DNS 协议 支持跨数据中心的 WAN 集群 提供图形界面 跨平台,支持 Linux、Mac、Windows

提供服务:

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

二、安装Consul

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

  2. 解压后目录下有一个consul.exe,使用windows terminal进入解压目录

    SpringCloud 学习笔记之Consul

  3. 键入consul --version可查看consul版本

    SpringCloud 学习笔记之Consul

  4. 键入consul agent -dev使用开发者模式启动consul,我的已经启动所以如下,未启动的将会看到consul agent running!提示启动成功

    SpringCloud 学习笔记之Consul

  5. 浏览器访问localhost:8500 (consul 默认端口为8500),效果如下:

SpringCloud 学习笔记之Consul

三、SpringCloud整合consul服务注册

SpringCloud整合ZooKeeper相似,故不再过多阐述

1、搭建步骤
  1. 新建model

  2. 修改pom.xml

    SpringCloud 学习笔记之Consul

  3. 编写application.yml

    SpringCloud 学习笔记之Consul

  4. 添加主启动类 添加@SpringBootApplication、@EnableDiscoveryClient注解

  5. 配置Bean 注入RestTemplate 添加@LoadBalanced客户端负载均衡

  6. 编写Controller

四、总结Eureka、Zookeeper和Consul

1、CAP理论:

CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

  • CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。 例如:Eureka

  • CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。 例如:Zookeeper、Consul

。 例如:Eureka

  • CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。 例如:Zookeeper、Consul

  • AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

上一篇:服务网格解决方案-Consul简介与Java 实现


下一篇:Docker consul (容器服务更新与发现)集群部署