日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

云时代架构阅读笔记十五——架构设计思维(一)

發(fā)布時(shí)間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 云时代架构阅读笔记十五——架构设计思维(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

對于架構(gòu)設(shè)計(jì)人們已經(jīng)提出了許多方法,分類為:工件驅(qū)動(dòng)的方法;用例驅(qū)動(dòng)的法;模式驅(qū)動(dòng)的方法;領(lǐng)域驅(qū)動(dòng)的方法。一個(gè)經(jīng)典的架構(gòu)設(shè)計(jì)過程模型,沿用了RUP中迭代增量的思想,由分析、描述、選擇、構(gòu)造和組合5個(gè)階段組成。

依據(jù)需求規(guī)格說明書分析出功能需求和架構(gòu)需求,通過用例和場景的描述,把需求分為關(guān)鍵的,次要的和可選的3類。關(guān)鍵需求決定架構(gòu),結(jié)合軟件架構(gòu)風(fēng)格和通用知識選擇最關(guān)鍵、影響最大的子系統(tǒng)分析設(shè)計(jì)并產(chǎn)生構(gòu)件。組合就是定義構(gòu)件接口,構(gòu)件作為一個(gè)封閉的功能實(shí)體,對外提供交互接口,并通過連接件將構(gòu)件連接起來形成最終的軟件架構(gòu)描述。5個(gè)階段是不斷迭代的過程,在每一次迭代中,都選取并實(shí)現(xiàn)一組用例和場景來確認(rèn)并完善架構(gòu)。

這個(gè)過程模型看似很流暢,但是,架構(gòu)師在設(shè)計(jì)時(shí)很難把握他的正確性和精準(zhǔn)性,而且用它架構(gòu)的系統(tǒng)是否對后續(xù)設(shè)計(jì)開發(fā)形成一種原則上的指導(dǎo)是很難說的。但是對于架構(gòu)師來說有些思路可以進(jìn)行參考,大致將架構(gòu)思維可以分為:分解、集成、分離、復(fù)用、分層、模式、抽象、結(jié)構(gòu)化、迭代、勿做過度設(shè)計(jì)這幾部分,按照這個(gè)思維方式來設(shè)計(jì)系統(tǒng)架構(gòu)。

分而治之是一種處理復(fù)雜問題的通用方法,在系統(tǒng)架構(gòu)中也是一種很重要的手段,例如多層架構(gòu)、OSI?七層模型都體現(xiàn)了分而治之思想。在架構(gòu)設(shè)計(jì)過程中,通過將關(guān)注點(diǎn)分離對架構(gòu)進(jìn)行多層次分解,將系統(tǒng)層層分解為多個(gè)架構(gòu)元素,進(jìn)而識別架構(gòu)元素。同時(shí)保證分解后的各個(gè)部分還能夠高內(nèi)聚,松耦合,最終又集成為一個(gè)完整的整體。分解核心是定義問題,因此架構(gòu)首先仍然需要理解清楚需求。

分解的作用:

?? ???1、應(yīng)用層:按照功能或者微服務(wù)進(jìn)行分解,將系統(tǒng)劃分未若干子系統(tǒng), 低耦合存在,在業(yè)務(wù)角度可以將單個(gè)應(yīng)用獨(dú)立為應(yīng)用單元(應(yīng)用單元是無狀態(tài)的),這樣可以靈活地進(jìn)行伸縮。

?? ???2、數(shù)據(jù)層:對數(shù)據(jù)庫進(jìn)行垂直拆分按照子系統(tǒng)緯度進(jìn)行分庫和水平拆分按照業(yè)務(wù)緯度進(jìn)行分表;但是進(jìn)行分庫分表中要避免分布式事務(wù),實(shí)在無法避免可利用消息系統(tǒng)來進(jìn)行規(guī)避。

?? ???3、代碼結(jié)構(gòu)層:代碼層一般分為三層,從下至上分別為:數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層(又或稱為領(lǐng)域?qū)?#xff09;、表示層。這也是Java?Web中重要的三層架構(gòu)中的三個(gè)層次。區(qū)分層次的目的即為了“高內(nèi)聚低耦合”的思想。

?????? 分解的原則:

?????? 業(yè)務(wù)原則:

??? 單一責(zé)任原則:對于一個(gè)微服務(wù)而言,具有有限的業(yè)務(wù)范圍,可以幫助我們滿足服務(wù)開發(fā)和交付的敏捷性;

適當(dāng)?shù)倪吔?#xff1a;關(guān)注微服務(wù)的功能范圍,一個(gè)服務(wù)的大小應(yīng)該等于滿足某個(gè)特定業(yè)務(wù)能力所需要的大小;

業(yè)務(wù)分層:?從整體規(guī)劃上把業(yè)務(wù)分層,形成單向依賴,避免微服務(wù)之間的網(wǎng)狀依賴關(guān)系;

顆粒度遞增:設(shè)計(jì)初期先把業(yè)務(wù)劃分到盡可能細(xì),然后依據(jù)其它原則合并到適當(dāng)顆粒度;

非唯一依賴:至少被2個(gè)以上其它微服務(wù)依賴的功能模塊,才有必要獨(dú)立成一個(gè)微服務(wù)。

技術(shù)原則:

部署獨(dú)立性:能獨(dú)立于其它微服務(wù)部署,一個(gè)微服務(wù)故障不影響其它微服務(wù);

動(dòng)態(tài)擴(kuò)展:每個(gè)微服務(wù)都可以動(dòng)態(tài)的進(jìn)行x軸和z軸的擴(kuò)展,并適應(yīng)云環(huán)境下的自動(dòng)化部署;(?參考這里?)

領(lǐng)域和應(yīng)用解耦:提供數(shù)據(jù)操作能力的領(lǐng)域服務(wù)和執(zhí)行業(yè)務(wù)邏輯的應(yīng)用服務(wù)解耦;

避免產(chǎn)生頻繁的跨庫查詢;

避免產(chǎn)生頻繁的分布式事務(wù)。

治理原則:

在業(yè)務(wù)分層的基礎(chǔ)上,根據(jù)業(yè)務(wù)細(xì)分規(guī)則,對微服務(wù)分組;

各個(gè)分組之間通過API網(wǎng)關(guān)集成;

通過API網(wǎng)關(guān)實(shí)現(xiàn)級輕量級消息路由,鑒權(quán);

運(yùn)行時(shí)管理,如服務(wù)降級,限流,監(jiān)控等可在API網(wǎng)關(guān)實(shí)現(xiàn),讓微服務(wù)功能純粹;

避免通過數(shù)據(jù)庫集成;

避免部署多個(gè)版本來兼容。

轉(zhuǎn)載于:https://www.cnblogs.com/DaisyYuanyq/p/11056077.html

總結(jié)

以上是生活随笔為你收集整理的云时代架构阅读笔记十五——架构设计思维(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。