五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

2.7 為何當(dāng)系統(tǒng)遇到性能瓶頸時(shí),經(jīng)常無能為力?

2023-05-28 09:49 作者:xlorne  | 我要投稿

性能瓶頸原因分析

我們?cè)诓豢紤]硬件瓶頸的情況,只從軟件角度來分析,系統(tǒng)的瓶頸產(chǎn)生的過程如下:

軟件系統(tǒng)上線以后隨著數(shù)據(jù)的不斷積累和需求的不斷變化,將面臨兩個(gè)不同維度的主要問題:

  1. 隨著時(shí)間積累,用戶量的上升與數(shù)據(jù)量的積累

  2. 隨著系統(tǒng)的使用反饋,帶來的需求變更與升級(jí)

對(duì)應(yīng)的解決方案:

  1. 數(shù)據(jù)量與請(qǐng)求量的上升,我們可以采用的解決方案就是負(fù)載均衡。

    例如通過容器化技術(shù)實(shí)現(xiàn)負(fù)載均衡。

  2. 面對(duì)需求的調(diào)整與反饋,那我們只能提供不斷的調(diào)整系統(tǒng)來應(yīng)對(duì)。

基于上述的兩種解決方案,最終系統(tǒng)的瓶頸,將主要產(chǎn)生在如下的兩個(gè)地方:

  1. 由于設(shè)計(jì)缺陷,導(dǎo)致業(yè)務(wù)不可控

  2. 底層大量有狀態(tài)的服務(wù)依賴,導(dǎo)致無法無限的負(fù)載均衡。

性能瓶頸的解決方案

其實(shí)這兩個(gè)這兩個(gè)問題本質(zhì)上也是一個(gè)問題,上帝的歸上帝,凱撒的歸凱撒。

系統(tǒng)業(yè)務(wù)設(shè)計(jì)應(yīng)該由業(yè)務(wù)模型來解決,有狀態(tài)的服務(wù)的依賴,要做到可拆分。

? ? 在Command中業(yè)務(wù)的交互,這個(gè)過程中將需要通過業(yè)務(wù)模型的交互完成業(yè)務(wù)邏輯的處理,同時(shí)要將模型數(shù)據(jù)與查詢數(shù)據(jù)存儲(chǔ)起來。通過事件機(jī)制實(shí)現(xiàn)對(duì)數(shù)據(jù)的廣播,然后由各Query模塊訂閱并同步其數(shù)據(jù),利用事件的廣播機(jī)制同步數(shù)據(jù),實(shí)現(xiàn)對(duì)有狀態(tài)的數(shù)據(jù)分散。

? ? 在這個(gè)過程中其實(shí),domain-storage 、EventBus 、 QueryStorage 這些概念都不重要,因?yàn)檫@些都是技術(shù),具體方案時(shí)取決于你的選型,而CQRS也非常容易落地,其實(shí)最復(fù)雜的是DomainModel的建立過程,也就是業(yè)務(wù)模型的建立過程,而業(yè)務(wù)模型的建立也是解決第一個(gè)問題的根本,所以說上述的兩個(gè)瓶頸其實(shí)都可以歸結(jié)到一個(gè)問題上。

如下代碼演示domain生命周期的監(jiān)控與事件發(fā)布

Demo模型代碼:

模型交互代碼:

打印日志如下:


上述代碼來源codingapi的開源框架 https://github.com/codingapi/springboot-framework

本框架基于springboot為提供領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與事件風(fēng)暴開發(fā)落地,提供的范式開源框架。


2.7 為何當(dāng)系統(tǒng)遇到性能瓶頸時(shí),經(jīng)常無能為力?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
二连浩特市| 抚顺县| 道真| 三门峡市| 林西县| 平乡县| 彭阳县| 明星| 天全县| 台东市| 剑阁县| 齐河县| 临漳县| 昌乐县| 永顺县| 临漳县| 顺昌县| 温州市| 夏河县| 五寨县| 昌邑市| 溧水县| 泸水县| 客服| 上虞市| 遂溪县| 水富县| 施甸县| 凌海市| 巴林右旗| 东辽县| 永嘉县| 佛教| 焉耆| 牟定县| 雷山县| 思茅市| 秭归县| 元朗区| 宁乡县| 荣成市|