最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

學(xué)習(xí)記錄之注冊(cè)中心Nacos及Dubbo(1)

2022-07-26 19:27 作者:星月襲空  | 我要投稿

Dubbo實(shí)現(xiàn)微服務(wù)調(diào)用:

確定調(diào)用關(guān)系

order模塊調(diào)用stock模塊的減少庫(kù)存的功能

order模塊調(diào)用cart模塊的刪除購(gòu)物車的功能

business模塊調(diào)用order新增訂單的功能

要想實(shí)現(xiàn)Dubbo調(diào)用

必須按照Dubbo規(guī)定的配置和行業(yè)標(biāo)準(zhǔn)的結(jié)構(gòu)來(lái)實(shí)現(xiàn)

Dubbo調(diào)用的好處是直接將要消費(fèi)的目標(biāo)(例如order模塊中消費(fèi)stock的方法)編寫在當(dāng)前消費(fèi)者的業(yè)務(wù)邏輯層中,無(wú)需編寫新的代碼結(jié)構(gòu),開發(fā)流程不會(huì)因?yàn)镈ubbo而變化

修改stock模塊

?創(chuàng)建csmall-stock-service項(xiàng)目

如果當(dāng)前項(xiàng)目會(huì)成為Dubbo的生產(chǎn)者

需要將提供給別的服務(wù)調(diào)用的方法單獨(dú)編寫在一個(gè)項(xiàng)目中

這個(gè)項(xiàng)目中有的方法,別人才能調(diào)用到

????pom文件新增了Dubbo和當(dāng)前項(xiàng)目業(yè)務(wù)邏輯層接口的依賴,yml文件中要添加dubbo的配置信息:

將業(yè)務(wù)邏輯層實(shí)現(xiàn)類方法聲明為Dubbo可調(diào)用的方法:

如果當(dāng)前項(xiàng)目是服務(wù)的提供者(生產(chǎn)者)還需要在SpringBoot啟動(dòng)類上添加@EnableDubbo的注解,才能真正讓Dubbo功能生效

修改order模塊支持Dubbo,因?yàn)閛rder模塊在Dubbo的調(diào)用關(guān)系中,既是生產(chǎn)者又是消費(fèi)者

它消費(fèi)cart和stock的服務(wù),同時(shí)又為business模塊提供服務(wù)

因?yàn)閛rder模塊也是生產(chǎn)者@EnableDubbo注解仍然要寫

負(fù)載均衡:

在實(shí)際開發(fā)中,一個(gè)服務(wù)基本都是集群模式的,也就是多個(gè)功能相同的項(xiàng)目在運(yùn)行,這樣才能承受更高的并發(fā),這時(shí)一個(gè)請(qǐng)求到這個(gè)服務(wù),就需要確定訪問哪一個(gè)服務(wù)器.

Dubbo框架內(nèi)部支持負(fù)載均衡算法,能夠盡可能的讓請(qǐng)求在相對(duì)空閑的服務(wù)器上運(yùn)行

Dubbo內(nèi)部默認(rèn)支持負(fù)載均衡算法

在不同的項(xiàng)目中,可能選用不同的負(fù)載均衡策略,以達(dá)到最好效果

Loadbalance:就是負(fù)載均衡的意思

Dubbo內(nèi)置負(fù)載均衡策略算法

Dubbo內(nèi)置4種負(fù)載均衡算法

- **random loadbalance:隨機(jī)分配策略(默認(rèn))**

- round Robin Loadbalance:權(quán)重平均分配

- leastactive Loadbalance:活躍度自動(dòng)感知分配

- consistanthash Loadbalance:一致性hash算法分配

實(shí)際運(yùn)行過(guò)程中,每個(gè)服務(wù)器性能不同

在負(fù)載均衡時(shí),都會(huì)有性能權(quán)重,這些策略算法都考慮權(quán)重問題

隨機(jī)分配策略

隨機(jī)生成隨機(jī)數(shù),在哪個(gè)范圍內(nèi)讓哪個(gè)服務(wù)器運(yùn)行

優(yōu)點(diǎn):算法簡(jiǎn)單,效率高,長(zhǎng)時(shí)間運(yùn)行下,任務(wù)分配比例準(zhǔn)確

缺點(diǎn):偶然性高,如果連續(xù)的幾個(gè)隨機(jī)請(qǐng)求發(fā)送到性能弱的服務(wù)器,會(huì)導(dǎo)致異常甚至宕機(jī)

權(quán)重平滑分配:

如果幾個(gè)服務(wù)器權(quán)重一致,那么就是依次運(yùn)行

但是服務(wù)器的性能權(quán)重一致的可能性很小

所以我們需要權(quán)重評(píng)滑分配

一個(gè)優(yōu)秀的權(quán)重分配算法,應(yīng)該是讓每個(gè)服務(wù)器都有機(jī)會(huì)運(yùn)行的

如果一個(gè)集群服務(wù)器性能比為5:3:1

1>A? 2>A 3>A 4>A 5>A? 6>B? 7>B? 8>B 9>C10>A

上面的安排中,連續(xù)請(qǐng)求一個(gè)服務(wù)器肯定是不好的,我們希望所有的服務(wù)器都能夠穿插在一起運(yùn)行

Dubbo2.7之后更新了這個(gè)算法使用"**平滑加權(quán)算法**"優(yōu)化權(quán)重平均分配策略

活躍度自動(dòng)感知:

記錄每個(gè)服務(wù)器處理一次請(qǐng)求的時(shí)間,安裝時(shí)間比例來(lái)分配任務(wù)數(shù),運(yùn)行一次需要時(shí)間多的分配的請(qǐng)求數(shù)較少

一致性Hash算法:

根據(jù)請(qǐng)求的參數(shù)進(jìn)行hash運(yùn)算

以后每次相同參數(shù)的請(qǐng)求都會(huì)訪問固定服務(wù)器

因?yàn)楦鶕?jù)參數(shù)選擇服務(wù)器,不能平均分配到每臺(tái)服務(wù)器上

Seata概述:

Seata 是一款開源的分布式事務(wù)解決方案,致力于在微服務(wù)架構(gòu)下提供高性能和簡(jiǎn)單易用的分布式事務(wù)服務(wù),也是Spring Cloud Alibaba提供的組件

Seata官方文檔??https://seata.io/zh-cn/??更多信息可以通過(guò)官方文檔獲取

單體項(xiàng)目中的事務(wù),使用的技術(shù)叫Spring聲明式事務(wù)能夠保證一個(gè)業(yè)務(wù)中所有對(duì)數(shù)據(jù)庫(kù)的操作要么都成功,要么都失敗,來(lái)保證數(shù)據(jù)庫(kù)的數(shù)據(jù)完整性,但是在微服務(wù)的項(xiàng)目中,業(yè)務(wù)邏輯層涉及遠(yuǎn)程調(diào)用,當(dāng)前模塊發(fā)生異常,無(wú)法操作遠(yuǎn)程服務(wù)器回滾,這時(shí)要想讓遠(yuǎn)程調(diào)用也支持事務(wù)功能,就需要使用分布式事務(wù)組件Seata

事務(wù)的4個(gè)特性:ACID特性

- 原子性

- 一致性

- 隔離性

- 永久性

Seata保證微服務(wù)遠(yuǎn)程調(diào)用業(yè)務(wù)的原子性

Seata將為用戶提供了 AT、TCC、SAGA 和 XA 事務(wù)模式,為用戶打造一站式的分布式解決方案。

Seata的運(yùn)行原理(AT模式)

觀察下面事務(wù)模型


上面結(jié)構(gòu)是比較典型的遠(yuǎn)程調(diào)用結(jié)構(gòu)

如果account操作數(shù)據(jù)庫(kù)失敗需要讓order模塊和storage模塊撤銷(回滾)操作,聲明式事務(wù)不能完成這個(gè)操作,需要使用Seata來(lái)解決

Seata構(gòu)成部分包含

* 事務(wù)協(xié)調(diào)器TC

* 事務(wù)管理器TM

* 資源管理器RM

我們使用AT(自動(dòng))模式完成分布式事務(wù)的解決

AT模式運(yùn)行過(guò)程

1.事務(wù)的發(fā)起方(TM)會(huì)向事務(wù)協(xié)調(diào)器(TC)申請(qǐng)一個(gè)全局事務(wù)id,并保存

2.Seata會(huì)管理事務(wù)中所有相關(guān)的參與方的數(shù)據(jù)源,將數(shù)據(jù)操作之前和之后的鏡像都保存在undo_log表中,這個(gè)表是seata組件規(guī)定的表,沒有它就不能實(shí)現(xiàn)效果,依靠它來(lái)實(shí)現(xiàn)提交(commit)或回滾(roll back)的操作

3.事務(wù)的發(fā)起方(TM)會(huì)連同全局id一起通過(guò)遠(yuǎn)程調(diào)用運(yùn)行資源管理器(RM)中的方法

4.RM接收到全局id,去運(yùn)行指定方法,并將運(yùn)行結(jié)果的狀態(tài)發(fā)送給TC

5.如果所有分支運(yùn)行都正常,事務(wù)管理器(TM)會(huì)通過(guò)事務(wù)協(xié)調(diào)器通知所有模塊執(zhí)行數(shù)據(jù)庫(kù)操作,真正影響數(shù)據(jù)庫(kù)內(nèi)容,反之如果有任何一個(gè)分支模塊運(yùn)行異常,都會(huì)通知TC,再由TC通知所有分支將數(shù)據(jù)庫(kù)操作回滾,恢復(fù)成運(yùn)行之前的樣子





學(xué)習(xí)記錄之注冊(cè)中心Nacos及Dubbo(1)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
阳城县| 桂阳县| 普宁市| 阳东县| 宁国市| 荆门市| 肇州县| 灵川县| 沐川县| 平邑县| 巨鹿县| 永兴县| 萨嘎县| 龙游县| 昆明市| 紫阳县| 余干县| 易门县| 荆州市| 尉犁县| 满洲里市| 札达县| 卓尼县| 葵青区| 尖扎县| 武功县| 台中县| 双牌县| 江安县| 盈江县| 湄潭县| 克山县| 桂阳县| 嘉义县| 紫云| 盐山县| 泰宁县| 若尔盖县| 勐海县| 荣成市| 永春县|