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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

软件架构演进

發(fā)布時間:2023/11/30 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件架构演进 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

傳統(tǒng)架構(gòu)到分布式架構(gòu)詳解?

軟件架構(gòu)演進(jìn)
軟件架構(gòu)的發(fā)展經(jīng)歷了從單體架構(gòu)、垂直架構(gòu)、SOA架構(gòu)到微服務(wù)架構(gòu)的過程,博客里寫到了這四種架構(gòu)的特點以及優(yōu)缺點分析,個人學(xué)習(xí)之用,僅供參考!

1.1.1 單體架構(gòu)

特點:
1、所有的功能集成在一個項目工程中。
2、所有的功能打一個war包部署到服務(wù)器。
3、應(yīng)用與數(shù)據(jù)庫分開部署。
4、通過部署應(yīng)用集群和數(shù)據(jù)庫集群來提高系統(tǒng)的性能。

優(yōu)點:
1、項目架構(gòu)簡單,前期開發(fā)成本低,周期短,小型項目的首選。

缺點:
1、全部功能集成在一個工程中,對于大型項目不易開發(fā)、擴(kuò)展及維護(hù)。
2、系統(tǒng)性能擴(kuò)展只能通過擴(kuò)展集群結(jié)點,成本高、有瓶頸。
3、技術(shù)棧受限。

1.1.2 垂直架構(gòu)

特點
當(dāng)訪問量逐漸增大,單一應(yīng)用增加機(jī)器帶來的加速度越來越小,將應(yīng)用拆成互不相干的幾個應(yīng)用,以提升效率。
此時,用于加速前端頁面開發(fā)的 Web框架(MVC) 是關(guān)鍵。

優(yōu)點:
1、項目架構(gòu)簡單,前期開發(fā)成本低,周期短,小型項目的首選。
2、通過垂直拆分,原來的單體項目不至于無限擴(kuò)大。
3、不同的項目可采用不同的技術(shù)。

缺點:
1、全部功能集成在一個工程中,對于大型項目不易開發(fā)、擴(kuò)展及維護(hù)。
2、系統(tǒng)性能擴(kuò)展只能通過擴(kuò)展集群結(jié)點,成本高、有瓶頸。

1.1.3 SOA架構(gòu)

面向服務(wù)架構(gòu),如dubbo

優(yōu)點:
把模塊拆分,使用接口通信,降低模塊之間的耦合度
把項目拆分成若干個子項目,不同的團(tuán)隊負(fù)責(zé)不同的子項目
增加功能時只需要在增加一個子項目,調(diào)用其它系統(tǒng)的接口就可以
可以靈活的進(jìn)行分布式部署

缺點:
系統(tǒng)之間交互需要使用遠(yuǎn)程通信,接口開發(fā)增加工作量

1.1.4 微服務(wù)架構(gòu)

特點:
1、將系統(tǒng)服務(wù)層完全獨立出來,并將服務(wù)層抽取為一個一個的微服務(wù)。
2、微服務(wù)遵循單一原則。
3、微服務(wù)之間采用RESTful等輕量協(xié)議傳輸。

優(yōu)點:
1、服務(wù)拆分粒度更細(xì),有利于資源重復(fù)利用,提高開發(fā)效率。
2、可以更加精準(zhǔn)的制定每個服務(wù)的優(yōu)化方案,提高系統(tǒng)可維護(hù)性。
3、微服務(wù)架構(gòu)采用去中心化思想,服務(wù)之間采用RESTful等輕量協(xié)議通信,相比ESB更輕量。
4、適用于互聯(lián)網(wǎng)時代,產(chǎn)品迭代周期更短。

缺點:
1、微服務(wù)過多,服務(wù)治理成本高,不利于系統(tǒng)維護(hù)。
2、分布式系統(tǒng)開發(fā)的技術(shù)成本高(容錯、分布式事務(wù)等),對團(tuán)隊挑戰(zhàn)大。

要解決的技術(shù)難點:
1、這么多服務(wù),怎么找?
通過zookeeper做服務(wù)注冊信息的分布式管理。當(dāng)服務(wù)上線時,服務(wù)提供者將自己的服務(wù)信息注冊到ZK,并通過心跳維持長鏈接,實時更新鏈接信息。服務(wù)調(diào)用者通過ZK尋址,根據(jù)可定制算法,找到一個服務(wù),還可以將服務(wù)信息緩存在本地以提高性能。當(dāng)服務(wù)下線時,ZK會發(fā)通知給服務(wù)客戶端。?
???????????????
主流的注冊中心:zookeeper、Eureka、consul、etcd

2、服務(wù)之間如何通信?
因為所有的微服務(wù)都是獨立的Java進(jìn)程跑在獨立的虛擬機(jī)上,所以服務(wù)間的通信就是IPC(inter process communication),已經(jīng)有很多成熟的方案。比如基于HTTP的REST或者Thrift

3、這么多服務(wù),服務(wù)掛了怎么辦?
重試機(jī)制
熔斷機(jī)制
限流/降級
負(fù)載均衡

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

總結(jié)

以上是生活随笔為你收集整理的软件架构演进的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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