1. 程式人生 > >springCloud微服務學習筆記一

springCloud微服務學習筆記一

        雖然入行已有4載,但所學甚淺,涉獵的技術雖然繁多,但不得其精妙所在,如若不是為了繼續生存,可能自己早已隨波逐流,哪還能有心思在這寫部落格。雖已過五五之數,但也算及時悔悟,驚若心中存有夢,唯有沉澱免自辱。

         在程式設計師這條路上,必定是沒有風平浪靜,大浪淘沙,雖然前仆後繼者眾多,到頭來終究是黃粱一夢。

SpringCloud個人理解:(本來還想書中抄一段。。。。

首先spring Cloud 是基於spring Boot來搭建的,微服務的理念提出後,spring Cloud並因此而誕生,他(框架集合)屬於微服務架構,對於軟體開發者來說既然是架構必然是有若干個框架和元件所組成,spring Cloud顧名思義是基於spring生態圈,至於元件的話就太多了這裡我就不一一羅列了,開發中遇到了,引用了那就屬於其元件,應為spring特意為他們做了支援。

Spring Boot優點 :

  1. 基於Spring開發web應用更加容易
  2.            採用基於註解方式配置,避免編寫大量重複的xml配置檔案
  3.            可以輕鬆整合Spring家族的其他框架,比如Spring JDBC,Spring Data等
  4.            提供嵌入式伺服器,開發和部署都變得非常方便

Spring Boot註解:

  1. @SpringBootApplication   表示該類是一個Spring Boot應用,可以直接通過main方法啟動
  2. @ RestController   控制層註解Controller和ResponseBody組合注
  3. @RequestMapping 請求介面內容配置
  4. @Service: 註解在類上,表示這是一個業務層bean
  5. @Controller:註解在類上,表示這是一個控制層bean
  6. @Repository: 註解在類上,表示這是一個數據訪問層bean
  7. @Component: 註解在類上,表示通用bea能
  8. @Autowired:按型別裝配
  9. @Resource: 按名稱裝配
  10. @Configuration:註解在類上,表示這是一個IOC容器,相當於spring的配置檔案,java配置的方式。 IOC容器的配置類
  11. @Bean: 註解在方法上,聲明當前方法返回一個Bean
  12. @PostConstruct:註解在方法上,建構函式執行後執行。!!!!!!!!!!!!!!!!!!!!!!!!!!
  13. @PreDestroy: 註解在方法上,在Bean銷燬前執行。!!!!!!!!!!!!!!!!!!!!!!!!!!
  14. @ComponentScan:註解在類上,掃描標註了@Controller等註解的類,註冊為bean
  15. @Lazy(true):  延遲初始化

接下來是spring Cloud的一些元件

eureka註冊中心:

作為註冊中心的實現與之相同功能的還有如zookeeper、Consul等等。Eureka是一款基於AP原則構建,而與dubbo常用與一起的zookeeper是基於CP原則構建,分散式領域中CAP定理,C即為資料一致性,A為服務可用性,P為服務對網路分割槽故障的容錯性。

客戶端負載均衡器Ribbon:

目前主流的負載方案分為兩種:一種是集中式負載均衡,在消費者和服務費方中間使用獨立的代理方式進行負載,有硬體的,也有軟體的如Nginx。另一種則是自己在客戶端做負載均衡,ribbon就是一種這樣的實現。在前面的一個元件eureka中就自動集成了ribbon。既然是負載均衡當然得有可配置的均衡策略預設基本都是輪詢,還要如權重,hash,隨即等。各種各樣都是基於配置選擇。

宣告式REST客戶端Feign:

     在spring 下的開發中常用的介面呼叫有httpclient(apache提供),OkHttp,Httpurlconnection(基於jdk實現),RestTemplate(spring提供用於訪問rest服務的客戶端。Feign的使用我單純的從書中學習覺得與hession非常的類似,通過註解的介面打成jar包客戶端引入後就跟呼叫本地方法一樣。

Hystrix服務容錯處理:

    在微服務架構下,很多服務都是互相依賴,如果不能對依賴的服務進行隔離,那麼服務本身發生故障,Hystrix通過HystrixCommand對呼叫進行隔離,這樣可以阻止故障的連鎖反應,能夠讓介面呼叫快速失敗並恢復正常,或者回退並優雅降級。其中回退是指某個請求錯先錯誤在預先的請求介面中配置callbak介面,當出現錯誤就跳到指定的介面中處理,不至於中斷程式。還有一大優勢是可以合併請求,節省程式在網路請求中的時間開銷,也可以配置快取請求結果非常實用。Hystrix的容錯策略有兩種一種是執行緒隔離,訊號量隔離。

     Hystrix監控,整合Dashboard檢視資料監控,開啟請求介面資訊記錄,並藉助Dashboard圖形化展示。

     Dashboard整合Turbine支援聚合叢集資料監控。

學習待續。。。。。。。。。。。。。。。。