SpringCloud學習筆記01
標簽: java 微服務 SpringCloud
1.什么是微服務?
從官方博文了解(馬丁·福勒)
通常而言,微服務架構是一種架構模式或者說是一種架構風格,它提倡將單一應用程序劃分成一組小的服務,每個服務運行在其獨立的進程中,服務之間相互協調,互相配合,為用戶提供最終價值。服務之間采用輕量級的通信機制互相溝通(通常是基于HTTP的RESTfull API)。每個服務都圍繞著具體業務進行構建,并且能夠被獨立的部署到生產環境,類生產環境等。另外,應盡量避免統一的,集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言,工具對其進行構建,可以有一個非常輕量級的集中式管理來協調這些服務,可以使用不同的語言來編寫服務,也可以使用不同的數據存儲。
注:dubbo的通信機制是基于RPC,cloud是基于HTTP的RESTfull API
從技術維度了解
微服務化的核心就是將傳統的一站式應用,根據業務拆分成一個一個的服務,徹底的去耦合,每一個微服務提供單個業務功能的服務,一個服務做一件事,從技術角度來講就是一種小而獨立的處理過程,類似進程概念,能夠自行單獨啟動或銷毀,擁有自己獨立的數據庫。
-
傳統的單機架構體系(All In One)
以eclipse來說 ,我們可以看作里面有一個大工程,作者稱這種架構為:巨石。
主要模塊有:商品/訂單/交易/庫存。
單體架構的不足:- war包之間相互依賴,牽一發而動全身。 - 隨著版本更新的迭代,維護成本變高,代碼可讀性大大降低。 - 開發人員分工不明確。
-
微服務架構
微服務架構的優勢:
- 各個模塊/服務,各自獨立開來,分灶吃飯
- 各自微小的一個進程,讓專業的人負責專業的模塊,來做專業的事情。
- 獨立部署,各個服務之間利用RESTfull API來相互調用。
- 微服務系統是分布式系統,業務與業務之間完全解耦,隨著業務的增加可以根據業務再拆分,具有極強的橫向擴展能力。
面對搞并發的場景可以將服務集群化部署,加強系統負載能力。
當然分布式架構對數據存儲也做了決策,除了關于概念模型的分散決策之外,微服務還分散了數據存儲決策。雖然單一應用程序更喜歡使用單個邏輯數據庫來存儲持久性數據,但企業通常更喜歡在一系列應用程序中使用單個數據庫 - 其中許多決策是通過供應商圍繞許可的商業模型來實現的。微服務更喜歡讓每個服務管理自己的數據庫,可以是同一數據庫技術的不同實例,也可以是完全不同的數據庫系統 - 這種方法稱為Polyglot Persistence。您可以在整體中使用多語言持久性,但它在微服務中更常出現。
智能推薦
SpringCloud學習筆記
目錄 1.SpringCloud 簡介 1.1.什么是 SpringCloud 1.2.SpringCloud 與 SpringBoot 的關系 1.3.SpringCloud 主要框架 1.4.SpringCloud 與 Dubbo 對比 1.5.說說 SpringCloud 的版本 2.服務發現組件 Eureka 2.1.Eureka簡介 2.2.Eureka服務端開發 1)搭建Eureka服...
SpringCloud 學習筆記
SpringCloud 這個階段該如何學 帶著問題走進微服務 1.1 什么是微服務? 1.2 微服務之間如何進行通訊? ? 使用http或者rpc 1.3 SpringCloud和Dubbo有哪些區別? Dubbo和Spring Cloud并不是完全的競爭關系,兩者所解決的問題域不一樣:Dubbo的定位始終是一款RPC框架,而Spring Cloud的目的是微服務架構下的一站式解決方案。 1.4 ...
springcloud學習筆記
原文地址:請移步原文 一、什么是springcloud,有什么作用 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。 二、springcloud的基本使用 1.服務的注冊與發現 ①創建一個pare...
SpringCloud學習筆記(一)
聲明:關于springcloud微服務的整套學習筆記都是基于開源項目AG-Admin的學習而整理的,本次文章中所涉及的包名或人名都沿用開源項目里面的名稱,也算是給老A推廣推廣他的項目吧。項目地址:https://gitee.com/geek_qi/ace-security。感謝老A能夠帶頭去搭建一個完整的spingcloud的微服務架構,這對于想要學習springcloud 的新手來說是...
Springcloud學習筆記(二)
上回在springcloud學習筆記(一)中我們演示了如何搭建eureka注冊中心和網關,今天我們借著老A的項目接著演示用戶微服務和配置微服務。用戶微服務就是用來模擬真實開發環境中的具體業務服務,配置微服務則是用來統一管理每個微服務的啟動文件的。 一:用戶微服務搭建 第一步是在ag-parent父工程中新建一個子工程取名ag-uc,接下來還是之前的套路,搭建一個微服務的三個步驟:導入依賴文件,修改...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...