Consul根据官网可知:是一套开源的分布式服务发现和配置管理系统,提供了微服务系统中的服务治理,配置中心,控制总线等功能。
主要特点:服务发现,健康检查,KV存储,安全的服务通信,多数据中心
这里主要讲服务发现,Consul的客户端可以注册服务,例如api或mysql,其他客户端可以使用Consul来发现给定服务的提供者。使用DNS或者HTTP,应用程序可以轻松找到它们依赖的服务,
Consul官网:https://www.consul.io/
Consul中文文档:https://www.springcloud.cc/spring-cloud-consul.html
SpringCloud使用Consul作为注册中心
1.官网下载安装consul,直接运行解压,双击运行exe文件,可输入命令consul --version
查看版本(若双击没有出现cmd.exe),可直接找到下载的consul.exe的目录,进行打开,输入consul agent -dev
启动,
访问 consul首页:[http://localhost:8500]进行页面访问,结果如下图
2.创建服务提供者,cloud-provider-consul 微服务,给所在服务pom.xml文件添加
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
3.yml文件
server:
port: 8006
spring:
application:
name: consul-provider
cloud:
consul:
host: localhost #(consul不在本机就填所在机IP)
port: 8500
discovery:
service-name: ${spring.application.name}
4.启动类:
启动类上添加注解:
@EnableDiscoveryClient
//该注解用于向使用consul或者Zookeeper作为注册中心时注册服务
@SpringBootApplication
创建服务消费者
yml文件和服务提供者除了端口不同,其他一样
启动类上添加注解同上述4一样
注:cap理论关注粒度是数据,而不是整体系统设计的策略。
C:Consistency(强一致)
A:Availability(可用性)
P:Partition tolerance(分区容错性) P是必须要保证的。
CAP理论的核心:一个分布式不能很好同时满足强一致性,可用性,分区容错性这三个需求。(只能同时满足两个)
因此,根据CAP原理将NoSQL 数据库分成了满足CA原则,CP原则,AP原则三类:
CA -单点集群,满足一致性,可用性,通常在扩展性要求低些。
CP -满足一致性,分区容忍性的系统,通常性能要求低些。
AP -满足可用性,分区容忍性的系统,通知对一致性要求低些。
个人学习笔记