SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式







數(shù)組

1)引入依賴
在cloud-demo父工程的pom文件中的<dependencyManagement>
中引入SpringCloudAlibaba的依賴:
<dependency> ??<groupId>com.alibaba.cloud</groupId> ??<artifactId>spring-cloud-alibaba-dependencies</artifactId> ??<version>2.2.6.RELEASE</version> ??<type>pom</type> ??<scope>import</scope> </dependency>
然后在user-service和order-service中的pom文件中引入nacos-discovery依賴:
<dependency> ??<groupId>com.alibaba.cloud</groupId> ??<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
nacos 分級

cluster-name 群集名稱

com.alibaba.cLoud.nacos.ribbon.NacosRuLe
先本地->隨機(jī)

不同空間無法訪問??!服務(wù)不可見
臨時(shí)示例 :心跳,被動
非臨時(shí)示例: 只標(biāo)記不健康 ,主動
主動推送變更給消費(fèi)者


短暫的


CAP:C(一致性),A(可用性),P(分區(qū)容錯(cuò))



feign配置


Feign的優(yōu)化:
1.日志級別盡量用basic
2.使用HttpClient或OKHttp代替URLConnection
①引入feign-httpClient依賴
②配置文件開啟httpClient功能,設(shè)置連接池參數(shù)

通常不建議在服務(wù)器和客戶機(jī)之間共享接口。這會引入緊耦合,并且實(shí)際上也不能與當(dāng)前形式的SpringMVC一起工作(方法參數(shù)映射不是繼承的)。





部分

所有



@order(-1)

多實(shí)現(xiàn),單繼承



daemon 守護(hù)進(jìn)程


流控模式

流控效果

排隊(duì)等待 流量整形

記得加注解


記得先注入bean,返回的是userclient

在啟動類里添加@ComponentScan來掃描feign的包

線程池隔離則是不使用請求本身的線程,它會把請求放到自己的線程池里面去調(diào)用其他服務(wù),同時(shí)也就實(shí)現(xiàn)了異步調(diào)用







持久化

cap 理論
cap 理論
- 節(jié)點(diǎn)數(shù)據(jù)一致
- 用戶訪問集群中的任意健康節(jié)點(diǎn),必須能得到響應(yīng),而不是超時(shí)或拒絕
- 分區(qū): 因?yàn)榫W(wǎng)絡(luò)故障或其它原因?qū)е路植际较到y(tǒng)中的部分節(jié)點(diǎn)與其它節(jié)點(diǎn)失去連接,形成獨(dú)立分區(qū)。容錯(cuò):在集群出現(xiàn)分區(qū)時(shí),整個(gè)系統(tǒng)也要持續(xù)對外提供服務(wù)
p 一定會出現(xiàn),cp or ap
es cp










零侵入 強(qiáng)一致vs最終一致

臟寫問題

全局鎖---行鎖










AOF全稱為Append Only File(追加文件)。Redis處理的每一個(gè)寫命令都會記錄在AOF文件,可以看做是命令日志文件。

bgrewriteaof


offset 第一次全量




選舉主節(jié)點(diǎn)







故障轉(zhuǎn)移

手動故障轉(zhuǎn)移





緩存預(yù)熱 InitializingBean




數(shù)據(jù)庫binlog




總結(jié)



