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
-
解压后目录下有一个consul.exe,使用windows terminal进入解压目录
-
键入
consul --version
可查看consul版本 -
键入
consul agent -dev
使用开发者模式启动consul,我的已经启动所以如下,未启动的将会看到consul agent running!提示启动成功 -
浏览器访问localhost:8500 (consul 默认端口为8500),效果如下:
三、SpringCloud整合consul服务注册
与SpringCloud整合ZooKeeper相似,故不再过多阐述
1、搭建步骤
-
新建model
-
修改pom.xml
-
编写application.yml
-
添加主启动类 添加@SpringBootApplication、@EnableDiscoveryClient注解
-
配置Bean 注入RestTemplate 添加@LoadBalanced客户端负载均衡
-
编写Controller
四、总结Eureka、Zookeeper和Consul
1、CAP理论:
CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
-
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。 例如:Eureka
-
CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。 例如:Zookeeper、Consul
。 例如:Eureka
-
CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。 例如:Zookeeper、Consul
-
AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。