新四季網

微服務的優勢和劣勢(微服務的優缺點分別是什麼)

2023-09-27 07:39:11 1

要是現在說不會微服務真不敢出去面試了,面試造火箭。入職開始擰螺絲...

優點

1)服務的獨立部署

每個服務都是一個獨立的項目,可以獨立部署,不依賴於其他服務,耦合性低。

2)服務的快速啟動

拆分之後服務啟動的速度必然要比拆分之前快很多,因為依賴的庫少了,代碼量也少了。

3)更加適合敏捷開發

敏捷開發以用戶的需求進化為核心,採用迭代、循序漸進的方法進行。服務拆分可以快速發布新版本,修改哪個服務只需要發布對應的服務即可,不用整體重新發布。

4)職責專一,由專門的團隊負責專門的服務

業務發展迅速時,研發人員也會越來越多,每個團隊可以負責對應的業務線,服務的拆分有利於團隊之間的分工。

5)服務可以動態按需擴容

當某個服務的訪問量較大時,我們只需要將這個服務擴容即可。

6)代碼的復用

每個服務都提供 REST API,所有的基礎服務都必須抽出來,很多的底層實現都可以以接口方式提供。

缺點:

1)分布式部署,調用的複雜性高

單體應用的時候,所有模塊之前的調用都是在本地進行的,在微服務中,每個模塊都是獨立部署的,通過 HTTP 來進行通信,這當中會產生很多問題,比如網絡問題、容錯問題、調用關係等。

2)獨立的資料庫,分布式事務的挑戰

每個微服務都有自己的資料庫,這就是所謂的去中心化的數據管理。這種模式的優點在於不同的服務,可以選擇適合自身業務的數據,比如訂單服務可以用 MySQL、評論服務可以用 Mongodb、商品搜索服務可以用 Elasticsearch。

缺點就是事務的問題了,目前最理想的解決方案就是柔性事務中的最終一致性,後面的章節會給大家做具體介紹。

3)測試的難度提升

服務和服務之間通過接口來交互,當接口有改變的時候,對所有的調用方都是有影響的,這時自動化測試就顯得非常重要了,如果要靠人工一個個接口去測試,那工作量就太大了。這裡要強調一點,就是 API 文檔的管理尤為重要。

4)運維難度的提升

在採用傳統的單體應用時,我們可能只需要關注一個 Tomcat 的集群、一個 MySQL 的集群就可以了,但這在微服務架構下是行不通的。當業務增加時,服務也將越來越多,服務的部署、監控將變得非常複雜,這個時候對於運維的要求就高了。

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了