2021-03-02 分類: 網站建設
軟件架構(software architecture)就是軟件的基本結構。
合適的架構是軟件成功的最重要因素之一。大型軟件公司通常有專門的架構師職位(architect),只有資深程序員才可以擔任。
O'Reilly 出版過一本免費的小冊子《Software Architecture Patterns》(PDF), 介紹了五種最常見的軟件架構,是非常好的入門讀物。
軟件架構就是軟件的基本結構。架構的本質是管理復雜性。如果你覺得架構不重要,可能是你做的事情不夠復雜,或者是你沒有管理好復雜性。架構模式雖多,經過抽象沉淀之后,也就那么幾種:
1. 分層架構(比較傳統的單體架構)
2. 事件驅動架構 (一般適用于應用局部場景,用來實現異步解耦)
3. 微核架構(又稱插件架構,開發難度較高,一般用來做工具軟件開發,如Eclipse,不太適合分布式業務場景)
4. 微服務架構(當前比較流行的服務化架構,解決單體架構面臨的問題,適合敏捷開發,快速迭代)
5. 云架構(現在的說法是云原生架構-Cloud Native,基于Docker、Kubernetes、Service Mesh 云原生架構)
在原文的基礎上,小編按照自己的想法,進行了小幅調整。
layered architecture)是最常見的軟件架構,也是事實上的標準架構。如果你不知道要用什么架構,那就用它。
這種架構將軟件分成若干個水平層,每一層都有清晰的角色和分工,不需要知道其他層的細節。層與層之間通過接口通信。
雖然沒有明確約定,軟件一定要分成多少層,但是四層的結構最常見。
有的軟件在邏輯層(business)和持久層(persistence)之間,加了一個服務層(service),提供不同業務邏輯需要的一些通用接口。
用戶的請求將依次通過這四層的處理,不能跳過其中任何一層。
優點
缺點
事件驅動架構(event-driven architecture)核心組件:
對于簡單的項目,事件隊列、分發器和事件通道,可以合為一體,整個軟件就分成事件代理和事件處理器兩部分。
優點
缺點
事件驅動架構在通信產品中應用得也非常廣泛,典型的如狀態機處理。事件驅動架構不適于做頂層架構,但適合做局部實現,幾乎遍布在通信軟件的各個角落。
優點
缺點
微核架構的設計和開發難度較高,這就注定它在企業產品中用得不多,雖然它的優點還不少。
現在開源的微服務框架比較多,如常用的有Spring Cloud、Dubbo、ServiceComb等等。
優點
缺點
虛擬中間件又包含四個組件:
隨著Docker、Kubernetes等容器化技術的快速發展,上述關于云架構描述有點陳舊了。當前最新的云原生架構,以Docker+Kubernetes為核心,尤其是容器編排Kubernetes 已經成為事實上的行業標準。
云原生架構圖的主要特征:
主要目標:
1. 讓開發人員聚焦業務邏輯的實現,其他交給容器云平臺來完成;
2. 支持業務系統的快速迭代,支撐業務的快速變化和發展;
3. 構建以共享服務體系為核心的業務中臺;
下面是小編針對某新零售企業設計的云原生架構圖,以云和微服務架構為基礎構建云原生應用,這里云可以是公有云、私有云、混合云等等。
以上是從不同的視角,對架構進行了分類。實際應用中,各種架構并不是孤立的,可以根據業務環境和業務訴求,對各種架構進行綜合和嫁接。每種架構都有其優點和缺點。優點不必多說,缺點則幾乎都是通過工具工程(比如自動化發布工具、自動化測試等等)能力的方法來規避,工具工程對軟件架構非常重要。
文章名稱:軟件架構入門-分層架構、事件驅動、微服務架構和云原生架構
當前路徑:http://vcdvsql.cn/news19/103819.html
成都網站建設公司_創新互聯,為您提供企業建站、微信小程序、網站設計、云服務器、關鍵詞優化、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容