您好,登錄后才能下訂單哦!
這篇文章主要講解了“微服務測試的本質是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“微服務測試的本質是什么”吧!
微服務概念
微服務英文名稱Microservice,微服務架構模式就是將整個Web應用組織為一系列小的Web服務。這些小的Web服務可以獨立地編譯及部署,并通過各自暴露的API接口相互通訊。它們彼此相互協作,作為一個整體為用戶提供功能,卻可以獨立地進行擴展。
要點
微服務的基本思想在于考慮圍繞著業務領域組件來創建應用;
微服務主要框架包括:Dubbo、Spring Cloud、 Istio ;
對于互聯網談到微服務架構一定會談到Devops即開發測試和部署運維的一體化;
微服務簡化了開發,它將創建復雜系統的任務切分為數十乃至上百個小服務,這些小服務易于被小型的軟件工程師團隊所理解和修改。但是微服務并未真正地消除復雜性,而是將復雜性遷移到對大量服務的連接、管理和監控上;
微服務與SOA,微服務是SOA發展出來的產物,它是一種比較現代化的細粒度的SOA實現方式;
傳統服務與微服務的區別
大家可以看到,傳統服務是所有的功能都部署在一臺機器上(上圖左),通過增加服務器數量來擴容!而微服務是以業務為單位進行部署,不同的業務部署在不同的服務器上,業務使用頻繁的還可以使用更多的資源進行部署(上圖右側,橘黃色部署了5個單元,而玫紅色只部署了一個單元),這樣就可以更合理的利用資源了!
傳統設計與微服務在數據庫方面設計的區別
大家可以看到傳統服務的所有功能對應一個DB (上圖左),而微服務可以根據不同的業務設計不同的DB (上圖右,可以一個業務對應一個獨立的DB)
微服務架構設計核心
1:我們把整個系統根據業務拆分成幾個子系統。
2:每個子系統可以部署多個應用,多個應用之間使用負載均衡。
3:需要一個服務注冊中心,所有的服務都在注冊中心注冊,負載均衡也是通過在注冊中心注冊的服務來使用一定策略來實現。
4:所有的客戶端都通過同一個網關地址訪問后臺的服務,通過路由配置,網關來判斷一個URL請求由哪個服務處理。請求轉發到服務上的時候也使用負載均衡。
5:服務之間有時候也需要相互訪問。例如有一個用戶模塊,其他服務在處理一些業務的時候,要獲取用戶服務的用戶數據。
6:需要一個斷路器,及時處理服務調用時的超時和錯誤,防止由于其中一個服務的問題而導致整體系統的癱瘓。
7:還需要一個監控功能,監控每個服務調用花費的時間等
SpringCloud
Spring Cloud是基于SpringBoot的一整套實現微服務的框架。他提供了微服務開發所需的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態管理等組件。
官網:https://springcloud.cc/
特點:
分布式/版本化配置
服務注冊和發現
路由
service - to - service調用
負載均衡
斷路器
分布式消息傳遞
SpringCloud包括的主要組件如下圖:
一個Spring Cloud 工程的pom配置文件如下,大家可以簡單的理解為在SpringCloud
工程的pom.xml中,你需要什么功能,把它直接引入工程就可以了
在這里由于我們主要介紹微服務概念,所以就不過多解釋springcloud相關的開發內容了。
微服務測試
前端UI
與傳統測試沒有區別,因為你只做功能那么你感受不到架構的變化!
服務端
微服務通常使用通過HTTP的REST來暴露,因此微服務的測試等價于接口測試。對微服務提供的接口進行功能、性能、安全測試,具體測試方法如下:
1.通過構建請求調用各個微服務接口,可以通過編碼或者工具模擬的方式完成。
編碼:python(unittest+requests);Java(junit4+httpclient)
工具模擬:jMeter、soupUI、postman等
2.請求的驗證:除了驗證接口的返回值外,還要關注負載均衡(請求是否分發到多點應用)
3.監控:通過工具 SpringCloud Sleuth、 Turbine、Prometheus進行監控
4.日志:通過ELK( ElasticStack )來集中化管理日志
重點:
微服務架構下,既需要保障各服務內部每個模塊的完整性,又需要關注模塊間、服務間的交互。
難點:
1.關聯性:微服務通常情況下會與多個微服務進行交互。當某服務發生變化時,會直接影響到依賴的其他服務。
2.可靠性:為了盡可能降低微服務間通信對網絡情況的高度依賴,降低因網絡不穩定引起的故障率,設計微服務架構時會設計隔離機制。
3.數據一致性:微服務是基于分布式系統設計的,這就需要考慮分布式系統數據一致性的問題。
感謝各位的閱讀,以上就是“微服務測試的本質是什么”的內容了,經過本文的學習后,相信大家對微服務測試的本質是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。