『高級篇』docker之springboot,springcloud(八)

>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>原文鏈接地址:『高級篇』docker之springboot,springcloud(八)

介紹了很多關於微服務的東西,大家對微服務有了一些認識,但是考慮到各位老鐵java比較多,那就不得不說springboot 和 springcloud。在java的世界裏他們跟微服務有這密切的關係,剛接觸springboot和springcloud的同學可能存在一種混亂,springboot跟微服務的關係,springcloud跟微服務的關係,springboot和springcloud他們之間的關聯關係,幫大家瀝青思路,撇清關係,不在背鍋!

SpringBoot的使命

springBoot是spring旗下的項目,它具體爲什麼出現,他的使命是什麼?最主要的就是化繁爲簡,讓我們開發spring變的簡單,各種xml的配置,各種bean,服務接口,實現,緩存,消息隊列,裏面沒個3個以上的spring配置文件很難看出來你是spring的項目,有點麻煩配置文件太多了。

  • 獨立運行 java -jar *.jar

    原來的需要一個web服務器,tomcat,代碼發佈到服務器的指定位置。

  • 內嵌web服務器

    講web服務器和應用的包打在一起,讓我們不用關心細節一個命令就可以啓動。

  • 簡化配置

    儘可能自動化的配置spring,這裏面很多配置都是固定的,這裏面通過start以幫助我們簡化maven的配置。

  • 準生產的應用監控

SpringBoot與微服務的關係

Java的潤滑劑,springboot開發微服務的潤滑劑。springboot的簡化,簡化的開發,簡化的配置,簡化的部署。微服務的特徵是輕量靈活,多變,數量多。他們的特徵非常的搭配,使用springboot開發微服務正好應對的微服務的特徵,springboot開發和部署的過程更加變快了,所以springboot可以更快,更容易開發出更多的服務。如果你是java語言,使用springboot開發微服務是沒錯的。其實springboot沒太多特別,但是效率提高了,天下武功唯快不破!

SpringCloud的使命

簡化java的分佈式系統,當你將java應用部署到多臺服務器的時候,提供分佈式能力的時候,第一要遇到的問題就是web端的session共享,多個服務之前的負載均衡,在nginx通過輪訓的方式訪問不同的tomcat。單機的情況下直接通過ip或者端口就可以直接訪問了,如果是分佈式怎麼辦?我們要自己寫一個具有容錯能力和負載聚恆的客戶端吧,還有分佈式下事務管理怎麼辦,其實在springcloud簡化類似我們之前的一些問題。

springCloud爲開發者快速開發具有分佈式能力的服務,統一的配置管理,服務的註冊,服務的調用,服務的發現,調度器,負載均衡,全局鎖,分佈式session。

  • 一系列框架

    集合框架

  • 簡化java的分佈式系統

    spring boot 簡化了java的開發,spring cloud簡化了分佈式系統的開發(分佈式系統的基礎設施的開發)

  • springboot的封裝

    幾家服務框架進行了組合,通過springboot的風格進行封裝,基於springboot的一款開發工具。

boot 和cloud

  • springboot意在簡化,是一種開發,配置風格
  • springcloud意在簡化分佈式,是功能的集合,風格的統一

cloud vs 微服務

  • java cloud的初衷簡化微服務的開發和部署
  • java微服務的解決方案
  • 側重的是功能和開發

    提供多臺機器,部署了spring cloud的應用,但是他們之間的運維spring cloud做不了的。

  • 其實最終springcloud開發出來的應用最終是docker image,方便重啓應用需要使用服務編排工具。

spring cloud的核心組件

  • netfilx eureka

    服務發現組件

  • netfilx ribbon

    客戶端負載均衡組件

  • netfilx Hystrix

    調度器

  • netfilx Zuul

    服務網關

  • Spring cloud config

    分佈式配置

發現沒有裏面很多都是netfilx,netfilx 其實是個美國在線影視公司。說說他的歷史吧,我學什麼語言喜歡看看他的歷史。很久很久以前,有一家公司叫Blockbuster,稱霸租碟業許多年。某個叫Reed Hastings的哥們在那裏租了個碟,結果由於超期歸還被黑走“一大筆”逾期費(大概40美元),怒了。然後他忿忿地去健身,發覺健身房商業模式甚是美哉,不管你去得多還是少,會員費半毛錢也不能少交。很不巧,Hastings是一個動不動就要改變世界的軟件工程師,想法來了就要幹,更不巧的是他當時已經非常有錢。於是憤怒之餘他創辦了Netflix,也是做租碟生意,沒有逾期費並且搞會員制。十三年後Netflix把Blockbuster幹到了破產保護,大仇得報。這個故事告訴我們兩個道理:
1.客戶服務一定要做好,不該薅的羊毛就別死命薅,不然你就是逼羊爲虎。
2.工程師惹不起。

  • netfilx 開源了很多分佈式的解決方案,但是直接使用目標麻煩,門檻比較高,spring cloud把他們拿過來做了跟spring的整合,讓他跟spring的整合更高,

介紹下spring cloud的組件

主要了解原理,不會深入介紹spring cloud。

  • netfilx eureka

『高級篇』docker之springboot,springcloud(八)

  • netfilx ribbon

『高級篇』docker之springboot,springcloud(八)

  • netfilx hystrix

『高級篇』docker之springboot,springcloud(八)

  • netflix zuul

『高級篇』docker之springboot,springcloud(八)

  • spring cloud config

『高級篇』docker之springboot,springcloud(八)

PS:下面我們一步一步spring cloud+spring boot創建的微服務,部署在服務編排框架上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章