spring cloud學習之微服務的理解和定義

什麼是微服務:spring

它的主旨就是將一個本來獨立的系統差分紅多個小型服務,這些小型服務都在各自獨立的進程中運行,服務間經過各類通信協議來進行相互通訊協做。網絡

每一個拆分的小型服務都圍繞系統中的某一項或一些耦合度搞的業務功能進行構建,而且每一個服務都維護自身的數據存儲,業務開發,測試以及獨立部署。異步

 

與單體系統區別:分佈式

         單體項目隨着企業的發展,系統變得愈來愈龐大業務模塊增多。他們都在一個進程內,每每若是咱們改一個小功能,爲了部署上線會影響其餘功能的運行。而且單應用中,不一樣業務模塊消耗的資源不一樣,對於資源的利用相互影響,這樣就會使得咱們隊各業務模塊的系統容量難以評估,越到後,維護成本愈來愈大難以控制。spring-boot

         微服務將不一樣的功能模塊拆分紅多個不一樣的服務,這些服務都可以獨立部署和拓展。全部各個模塊之間的資源不會相互影響。經過配合服務間協做流程更容易發現系統的微服務

 

構建時候須要考慮的重要因素:網絡延遲,分佈式服務,異步消息等組件化

 

服務組件化:測試

         1)組件是什麼spa

                   組件是一個能夠獨立更換和升級的單元。就像PC的CPU,內存同樣獨立升級不會   影響其餘的單元線程

         2)什麼是服務:

                   服務是進程外的組件,他經過網絡通訊協議進行協做,而不是像傳榮組件那樣嵌入的方法協同工做。每一個服務都獨立開發,部署能夠避免一個服務修改整個系統從新部署。

 

在微服務中經常使用的通訊協議:

         1)使用HTTP的RESTful API或輕量級的消息發送協議,實現消息傳遞和服務調用的觸發

         2)經過在輕量級消息總線上傳遞消息,相似的RabbitMQ等一些提供可靠一部交換的中間件

         爲何不適用RPC協議:由於會致使微服務之間產生繁瑣的通訊,使得系統表現更爲糟糕。

 

         微服務更加要求各個服務之間是「無事務」調用,對於數據一致性,數據在最好處理狀態是一致的便可。若過程當中發現錯誤,經過補償機制來進行處理使得錯誤數據達到一致性。

<dependency>
   <groupId> org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

這個包能夠對模塊根據應用依賴和配置自動建立出來的監控和管理端點。實現獲取各項監控指標

原生端點能夠分爲三類:

 

1.應用配置類:獲取程序加載的應用配置,環境變量,自動化配置報名等與Spring Boot相關 的配置類信息

2.質量指標類:程序運行過程當中監控質量指標。eg:內存信息,線程池

3.操做控制類:提供了對應用的關閉等操做類功能

 

 

 

參考書目:spring cloud微服務實戰

 

PS:若是有什麼不正確的歡迎指正

相關文章
相關標籤/搜索