springCloud微服務使用


一.微服務簡介

1.演變過程:單體架構、SOA、微服務

2.單體架構:一個應用包含了應用之間所有的功能程序,通過打成war包的方式發布部署。

缺點:復雜性逐漸偏高、技術債務逐漸變慢、阻礙技術的創新擴展、無法按需求伸縮

image

3.SOA:面向服務的架構,是一個組件的架構模型,它將應用程序之間不同的功能單點通過服務之間的良好接口進行關聯,接口采用中立的方式進行定義,以一種統一的方式進行交互。

特征:外部訪問、隨時可用、服務接口分級、松散耦合、可復用的服務、服務接口設計管理、標准化服務接口、支持消息模式

image

4.微服務:以開發一組小型應用的方式進行,開發一個完全獨立的應用系統,獨立運行自己的進程,並采用http資源API輕量的機制進行相互通信,並圍繞業務功能進行設計。

特征:獨立運行進程、獨立的構建系統、輕量級通信、Rest API的方式應用調用

優點:易於開發、啟動快、局部修改容易、技術不受限制、按需求伸縮、DevOps

帶來的問題:運維、維護要求高、分布式復雜性、接口調整成本高、

設計原則:單一原則(只關注自己)、服務自理(獨立)、明確接口、輕量通信

image

二.服務發現與注冊

1.創建調用關系的微服務

image

服務提供者:負責提供Rest API的微服務

服務消費者:負責調用微服務的微服務

2、使用實現微服務注冊與發現

image

三.微服務容錯

image

實現容錯機制:

                  1.超時機制:通過網絡請求其他服務時,都必須設置超時。正常情況下,一個遠程調用一般在一定的毫秒內得到請求的響應,如果超時了這個時間、依賴的服務不可用、網絡有問題、響應的時間則會變得很長。通常情況下,一次請求對應着一個線程、進程。如果響應太慢就得不到這個線程的釋放、又對應着系資源的釋放。如果得不到、則會越積累越多,服務資源就會被耗盡,從而導致服務不可用。所以必須給每個請求都設置【超時機制】,讓資源盡快的得到【釋放】。

                  2.斷路器:依賴的服務有大量的超時請求的時候,得不到資源的釋放、積累越多、導致系統服務不可用,再去請求已經沒有意義了。只能是無謂的消耗現有資源從而導致【其他的服務不可用】,例:設置超時機制2秒,如果在某個時間內100個請求在2秒鍾得不到請求的響應,意味着這個服務發生異常。此時其他依賴的的請求再去請求已經沒有意義了。

                                使用斷路器實現快速失敗,讓資源得到快速的響應。例它在某個時間2秒內偵查到200個請求的失敗、超時,就會強迫立即快速失敗,不再請求所依賴的服務,從而防止應用程序不斷的嘗試執行可能會失敗的操作,這樣應用程序就會執行不用等待錯誤回調、或者去浪費cpu的時間去等待很長很長時間的超時。斷路器也能實現程序的錯誤是否已經得到修復,如果已經修復、應用程序就會再次調用操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM