微服务:实战从传统项目平滑过渡 - 笔记
什么是微服務(wù)
服務(wù)之間無(wú)依賴,可插拔
- 不主動(dòng)(不主動(dòng)提供數(shù)據(jù)/上下線不通知/不告訴你服務(wù)內(nèi)容)
- 不拒絕(只要遵循接口規(guī)范,任何客戶端都可以調(diào)用。應(yīng)該由注冊(cè)中心負(fù)責(zé)負(fù)載均衡。)
- 不負(fù)責(zé)(A調(diào)用B,如果沒(méi)有調(diào)通,B不負(fù)責(zé)將失敗的請(qǐng)求轉(zhuǎn)發(fā)至另外的節(jié)點(diǎn)上,應(yīng)該由A進(jìn)行服務(wù)降級(jí)。)
例如,菜單列表服務(wù)需要提供大按鈕。如果提供菜單數(shù)據(jù)的服務(wù)掛了,或者超時(shí)了,此時(shí)前端需要數(shù)據(jù)的一方進(jìn)行降級(jí),去緩存中調(diào)基本菜單(兜底數(shù)據(jù))。
A服務(wù)調(diào)用B服務(wù),如果調(diào)用失敗,需要A服務(wù)處理。
單體應(yīng)用向微服務(wù)異構(gòu)平臺(tái)架構(gòu)演變
SpringCloud Netflix/Alibaba
流量分發(fā)指標(biāo):
TPS:動(dòng)態(tài)處理用戶的請(qǐng)求,帶有事務(wù)
QPS:單純的query,理解為純靜態(tài)請(qǐng)求(css,js文件等)。靜態(tài)資源一般放在前端高性能服務(wù)器上,如CDN服務(wù)器,或Nginx做動(dòng)靜分離
如何分辨哪些是靜態(tài)請(qǐng)求,哪些是帶有事務(wù)的請(qǐng)求?
不連接數(shù)據(jù)庫(kù)的,不進(jìn)行加減乘除的,落地到本地磁盤地址的,都是靜態(tài)請(qǐng)求。
實(shí)戰(zhàn)Spring Cloud微服務(wù)注冊(cè)中心
注冊(cè)中心需要記錄:
“服務(wù)名稱”:“對(duì)應(yīng)的所有可用服務(wù)IP:port列表”
注冊(cè)中心需要提供:
1、接受注冊(cè)的接口
2、獲取注冊(cè)表功能
3、注銷、下線
4、心跳
5、定時(shí)剔除沒(méi)有心跳的服務(wù)
6、注冊(cè)中心集群之間注冊(cè)表的同步
同步:
1、注冊(cè)中心啟動(dòng)的時(shí)候,去其他注冊(cè)中心拉取已經(jīng)有的注冊(cè)表,注冊(cè)到自身
2、當(dāng)有注冊(cè)表的操作時(shí)(注冊(cè)、更新、下線、同步到集群中),將操作廣播到集群中的其他節(jié)點(diǎn)。
總結(jié)
以上是生活随笔為你收集整理的微服务:实战从传统项目平滑过渡 - 笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 程序员是青春饭吗 - CSDN分享会笔记
- 下一篇: java.lang.TypeNotPre