Consul根據(jù)官網(wǎng)可知:是一套開源的分布式服務(wù)發(fā)現(xiàn)和配置管理系統(tǒng),提供了微服務(wù)系統(tǒng)中的服務(wù)治理庇配,配置中心斩跌,控制總線等功能。
主要特點(diǎn):服務(wù)發(fā)現(xiàn)捞慌,健康檢查耀鸦,KV存儲(chǔ),安全的服務(wù)通信啸澡,多數(shù)據(jù)中心
這里主要講服務(wù)發(fā)現(xiàn)袖订,Consul的客戶端可以注冊(cè)服務(wù),例如api或mysql,其他客戶端可以使用Consul來發(fā)現(xiàn)給定服務(wù)的提供者嗅虏。使用DNS或者HTTP洛姑,應(yīng)用程序可以輕松找到它們依賴的服務(wù),
Consul官網(wǎng):https://www.consul.io/
Consul中文文檔:https://www.springcloud.cc/spring-cloud-consul.html
SpringCloud使用Consul作為注冊(cè)中心
1.官網(wǎng)下載安裝consul,直接運(yùn)行解壓皮服,雙擊運(yùn)行exe文件楞艾,可輸入命令consul --version
查看版本(若雙擊沒有出現(xiàn)cmd.exe),可直接找到下載的consul.exe的目錄龄广,進(jìn)行打開硫眯,輸入consul agent -dev
啟動(dòng),
訪問 consul首頁:[http://localhost:8500]進(jìn)行頁面訪問,結(jié)果如下圖
2.創(chuàng)建服務(wù)提供者择同,cloud-provider-consul 微服務(wù)两入,給所在服務(wù)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不在本機(jī)就填所在機(jī)IP)
port: 8500
discovery:
service-name: ${spring.application.name}
4.啟動(dòng)類:
啟動(dòng)類上添加注解:
@EnableDiscoveryClient
//該注解用于向使用consul或者Zookeeper作為注冊(cè)中心時(shí)注冊(cè)服務(wù)
@SpringBootApplication
創(chuàng)建服務(wù)消費(fèi)者
yml文件和服務(wù)提供者除了端口不同,其他一樣
啟動(dòng)類上添加注解同上述4一樣
注:cap理論關(guān)注粒度是數(shù)據(jù)奠衔,而不是整體系統(tǒng)設(shè)計(jì)的策略谆刨。
C:Consistency(強(qiáng)一致)
A:Availability(可用性)
P:Partition tolerance(分區(qū)容錯(cuò)性) P是必須要保證的塘娶。
CAP理論的核心:一個(gè)分布式不能很好同時(shí)滿足強(qiáng)一致性,可用性痊夭,分區(qū)容錯(cuò)性這三個(gè)需求刁岸。(只能同時(shí)滿足兩個(gè))
因此,根據(jù)CAP原理將NoSQL 數(shù)據(jù)庫分成了滿足CA原則她我,CP原則虹曙,AP原則三類:
CA -單點(diǎn)集群,滿足一致性番舆,可用性酝碳,通常在擴(kuò)展性要求低些。
CP -滿足一致性恨狈,分區(qū)容忍性的系統(tǒng)疏哗,通常性能要求低些。
AP -滿足可用性禾怠,分區(qū)容忍性的系統(tǒng)返奉,通知對(duì)一致性要求低些。
個(gè)人學(xué)習(xí)筆記