Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 中文字幕一区视频一线,亚洲精品一区二区卡,成人国内精品久久久久影院

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          軟件架構最全詳解(萬字圖文總結)

          關注△的架構筆記△,十余年BAT架構經驗傾囊相授

          數據庫概念結構設計步驟_數據庫概念結構的設計步驟_數據庫概念結構設計步驟

          大家好,我是。

          軟件架構是架構師進階的必備技能,而且阿里等大廠面試都會重點考察你的架構能力,本篇我就全面來給大家詳解軟件架構@

          最新原創超30萬字《阿里架構師進階專題合集》和《最全大廠Java面試題答案合集》,請關注本公眾號【的架構筆記】,后臺回復:資料,即可領取。

          軟件架構

          軟件架構是一個隱喻,類似于建筑物的架構,建筑學研究建筑的規劃、設計和實施,而軟件架構則是研究軟件的規劃、設計和實施。

          軟件架構貫穿系統實現的整個過程,軟件架構就是軟件的基本結構,是軟件系統實現的主要參考,是軟件系統實現的藍圖。

          為什么要學習軟件架構

          軟件架構的設計顯得尤其重要,系統架構設計通過以下方式來解決上面的軟件難題:

          1.抽象系統

          抽象是將復雜的概念簡單化,在最高層次上,將軟件系統抽象為對象和過程,使具象的事物概念化,易于理解,易于交流。

          對象可以是系統、組件、接口、類、方法等等不同層次的概念,過程是系統運行的方式和流程。

          2.復雜性

          軟件可以說是人類創造的最復雜的系統類,軟件的各個模塊之間有各種顯性或隱性的依賴關系,隨著系統的成長和模塊的增多,這些關系的數量往往以幾何級數的速度增長。

          特別是現在流行的微服務架構,更需要解決服務之間的依賴性,所以,這個時候我們需要從更高的架構視角來解決以上這些問題。

          軟件架構的本質就是要管理復雜性。

          3.交流性

          軟件架構會形成一套:設計文檔,描述說明,流程圖,架構圖,這些會讓復雜的軟件系統以更易于理解和易于交流的方式展示。

          有哪些軟件架構

          架構模式雖多,但常用的也就那么幾種。

          1.分層架構

          分層架構,英文名layered ,是最常見的軟件架構,也是事實上的軟件標準架構。

          分層架構將軟件分成若干個水平層,每一層都有清晰的角色和分工,層與層之間通過接口通信。

          分層架構,最常見的就是是四層結構,如下圖所示:

          數據庫概念結構設計步驟_數據庫概念結構的設計步驟_數據庫概念結構設計步驟

          第一層:表現層:負責用戶界面;

          第二層:業務層:負責實現業務邏輯;

          第三層:持久層:負責提供數據,比如:SQL 語句就放在這一層;

          第四層:數據庫:負責保存數據,持久化重要的數據;

          分層架構的優點

          1)分工明確

          不同技能的程序員可以分工,負責不同的層,天然適合大多數軟件公司的組織架構。

          2)降解系統復雜度

          分層的核心目的還是為了降解系統復雜度,提高系統的健壯性和可維護性,這也就是為什么需要分層的原因。

          分層架構的缺點

          每一層都可以獨立測試,其他層的接口通過模擬解決然而分層架構固然很好,但前提是分層合理。

          擴展性差,增加需求必須依次擴展每一層,由于每一層內部是耦合的,擴展會很困難。

          2.事件驅動架構

          事件驅動架構,英文名Event Driven ,是一個流行的分布式異步架構模式,可以用來設計規模很大的應用程序。

          數據庫概念結構設計步驟_數據庫概念結構設計步驟_數據庫概念結構的設計步驟

          事件驅動架構是一種基于發布/訂閱模式的消息異步通信的架構,你可以把它理解為架構層面的觀察者模式。

          事件驅動架構

          通常,架構主要包含4種組件,如下圖所示:

          數據庫概念結構的設計步驟_數據庫概念結構設計步驟_數據庫概念結構設計步驟

          1)事件隊列(event queue)

          負責:接收事件的入口。

          2)分發器(event )

          負責:將不同的事件分發到不同的業務邏輯單元。

          是一個事件中樞處理單元,知道事件的處理流程,但不執行具體的事件業務處理邏輯,根據事件的特征對初始事件進行拆分編排為處理事件并進行分發。

          3)事件通道(event channel)

          負責:分發器與處理器之間的聯系渠道。

          是一組各自獨立的組件,彼此之間沒有依賴,自包含,不依賴于其他 的處理結果。

          4)事件處理器(event )

          負責:實現業務邏輯,處理完成后會發出事件,觸發下一步操作。

          事件驅動架構工作流程

          第一步:客戶端發送一個事件到事件隊列event queues中,它用來將事件傳送給event ;

          第二步:Event 收到初始的事件后,會發送額外的一些異步事件給event 來執行處理的每個步驟;

          第三步:Event 既可以是消息隊列,也可以是消息topic,大部分是消息topic,這樣可以由多個消息處理器(event )處理同一個消息。

          第四步:Event 監聽event ,接收事件并處理一些業務邏輯。

          事件驅動架構應用場景

          典型的場景:比如在交易系統中,每個請求流程必須經過特定的步驟,如驗證、訂單、配送,以及通知買家等。

          3.MVC架構

          MVC架構是軟件工程中的一種軟件架構模式,它把軟件系統分為三個基本的部分。

          分別為:

          主要為以上三大部分組成,如下圖所示:

          數據庫概念結構的設計步驟_數據庫概念結構設計步驟_數據庫概念結構設計步驟

          1.模型(Model)

          模型封裝了數據及對數據的操作,可以直接對數據庫進行訪問。

          簡要的講:就是一個或多個對象,用于存儲數據和業務邏輯。

          2.視圖(View)

          視圖負責展示,沒有具體的程序邏輯,比如:一個JSP頁面想控制器提交數據和為模型提供數據顯示,JSP頁面主要使用HTML標記和標記來顯示數據。

          3.控制器()

          控制器用于控制程序的流程,將模型中的數據展示到視圖中。

          比如:Servlet對象根據視圖提交的請求進行控制,即將請求轉發給業務邏輯的,并將處理記過存放到實體模型中,輸出給視圖顯示。

          MVC架構優點

          1)多個視圖共享一個模型,大大提高代碼的可重用性;

          2)三個模塊相互獨立,改變其中一個不會影響其他兩,所以依據這種設計模式,能構建良好的松耦合性的組件;

          3)控制器提高了應用程序的靈活性和可控制性:控制器可以用來連接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構造應用程序提高強有力的手段。

          MVC架構缺點

          1)增加了系統結構和實現的復雜性

          數據庫概念結構的設計步驟_數據庫概念結構設計步驟_數據庫概念結構設計步驟

          對于簡單頁面,嚴格遵循mvc,會增加結構的復雜性。

          2)視圖與控制器過于緊密的連接

          視圖與控制器是相互分離,但確實聯系緊密的部件,視圖沒有控制器的存在,其應用是很有限的。

          3)視圖對模型數據的低效率訪問

          依據模型操作接口的不同,視圖可能需要多次調用才能獲得足夠的顯示數據,對未變化數據的不必要的頻繁訪問,也將損害操作性能。

          4.微服務架構

          最早一個系統業務量很小的時候,大部分Web工程的Java應用程序,打包為War包部署在一臺服務器上。

          比如:你正在構建一個在線商店系統,包含功能:用戶、商品、下訂單等功能,整體架構如下圖所示:

          數據庫概念結構設計步驟_數據庫概念結構的設計步驟_數據庫概念結構設計步驟

          隨著業務訪問量越來越大,單體應用就會出現巨大的瓶頸。

          比如:

          所以后期就會出現,按照業務為單位進行拆分,出現的微服務架構。

          數據庫概念結構的設計步驟_數據庫概念結構設計步驟_數據庫概念結構設計步驟

          微服務優點

          微服務缺點

          5.云架構

          云架構,英文名cloud ,是指各項技術如何整合在一起以創建云,云是指能夠抽象、匯集和共享整個網絡中的可擴展資源的 IT 環境。

          云被視為平臺即服務(Pass),因為云提供商為用戶提供了平臺以及底層IT基礎架構。

          云架構主要解決擴展性和并發的問題,是最容易擴展的架構。

          這個模式主要分成兩部分:

          虛擬中間件又包含四個組件:

          數據庫概念結構的設計步驟_數據庫概念結構設計步驟_數據庫概念結構設計步驟

          消息中間件( Grid):管理用戶請求和session,當一個請求進來以后,決定分配給哪一個處理單元;

          數據中間件(Data Grid):將數據復制到每一個處理單元,即數據同步。保證某個處理單元都得到同樣的數據;

          處理中間件( Grid):如果一個請求涉及不同類型的處理單元,該中間件負責協調處理單元;

          部署中間件( Manager):負責處理單元的啟動和關閉,監控負載和響應時間,當負載增加,就新啟動處理單元,負載減少,就關閉處理單

          云架構的優點:

          高負載,高擴展,動態部署。

          云架構的缺點

          1)實現復雜,成本較高;

          2)數據隱私問題:由于隱私問題,一些法律法規以及一些公司政策不允許將數據存儲在云環境中。

          3)嚴重依賴互聯網連接:通常云服務是通過互聯網提供的,如果您處于互聯網連接較差的地區,或者更糟糕的是,根本沒有互聯網,這可能是一個問題。

          以上

          最后送大家一個福利:

          送大家一份我原創超30萬字的,非常的全面。

          以及給大家整理了一份非常全面的,包含:Java、多線程、JVM、Spring、MySQL、Redis、Dubbo、中間件…等最全大廠必考題及答案詳解。

          需要以上架構&面試&答案&合集的同學,加我微信即可領取!

          添加時備注:資料

          數據庫概念結構設計步驟_數據庫概念結構設計步驟_數據庫概念結構的設計步驟


          主站蜘蛛池模板: 国产午夜毛片一区二区三区 | 日韩精品久久一区二区三区| 亚洲一区二区三区在线 | 一区二区三区视频观看| 日本精品高清一区二区| 亚洲AV无码一区东京热久久| 亚洲国产精品一区二区第一页| 日韩AV无码久久一区二区| 亚洲综合一区二区国产精品| 亚洲国产精品一区二区三区久久| 无码国产精品一区二区免费式影视| 亚洲一区无码精品色| 国产一区二区免费在线| 国产在线观看一区二区三区四区 | 久久久久人妻精品一区二区三区| 成人乱码一区二区三区av| 天天看高清无码一区二区三区| AV天堂午夜精品一区二区三区| 无码中文字幕人妻在线一区二区三区| 日本一区二区在线播放| 一区二区三区观看免费中文视频在线播放 | 日韩在线不卡免费视频一区| 精品久久一区二区三区| 精品一区二区三区四区| 亚洲一区二区在线免费观看| 无码精品人妻一区二区三区漫画| AV无码精品一区二区三区宅噜噜 | 日本视频一区在线观看免费 | 久久亚洲国产精品一区二区 | 亚洲国产成人久久一区WWW| 色老板在线视频一区二区| 免费无码毛片一区二区APP| 精品一区二区91| 国产成人综合一区精品| 国产乱码一区二区三区爽爽爽| 亚洲一区二区三区91| 丝袜美腿一区二区三区| 亚洲AV日韩综合一区尤物| 毛片一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 中文字幕乱码人妻一区二区三区|