SpringCloud入門——(一)目錄篇

目前是微服務的天下,我們來搭建自己的微服務系統從而學習及應用。

Spring Cloud爲開發人員提供了快速構建分佈式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智能路由,微代理,控制總線)。分佈式系統的協調導致了樣板模式, 使用Spring Cloud開發人員可以快速地支持實現這些模式的服務和應用程序。他們將在任何分佈式環境中運行良好,包括開發人員自己的筆記本電腦,裸機數據中心,以及Cloud Foundry等託管平臺。

官網

我們將從:
Eureka (服務註冊與發現)
Spring Cloud Config+Spring Cloud Bus (微服務配置中心+消息總線,實現配置熱更新)
Hystrix (熔斷,服務降級)
Zuul (路由)

Spring Cloud Admin (微服務監控)
進階:
Spring Cloud Stream (數據流操作開發包,封裝了與Redis,Rabbit、Kafka等發送接收消息。)
Spring Cloud Data Flow (大數據操作工具,作爲Spring XD的替代產品,它是一個混合計算模型,結合了流數據與批量數據的處理方式。)
原理及面試題總結。

在進入微服務世界之前我們要明白,傳統架構與微服務的區別。
單體服務
單體服務通常由展示層+業務層+持久層組成
優點:
資源共享方便,運行部署測試相對簡單(一個應用肯定比多個應用簡單)
缺點:
業務臃腫,擴展性差。
維護成本高 (代碼維護成本)
需求變更困難

解決對策:1、拆分 2、解耦 3、透明 4、獨立 5、分層。

拆分:對應用進行水平和垂直拆分,例如商品中心、計費中心、訂單中心等。
解耦:通過服務化和訂閱、發佈機制對應用調用關係解耦,支持服務的自動註冊和發現
透明:通過服務註冊中心管理服務的發佈和消費、調用關係
獨立:服務可以獨立打包、發佈、部署、啓停、擴容和升級,核心服務獨立集羣部署
分層:梳理和抽取核心應用、公共應用,作爲獨立的服務下沉到核心和公共能力層,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求

微服務
優點:
1 易於開發和維護:一個微服務只會關注一個特定的業務功能,所以業務清晰、代碼量較少。開發和維護單個微服務相對簡單。
2 單個微服務啓動較快
3 局部修改容易部署:單體應用只要有修改,就得重新部署整個應用。微服務解決了這樣的問題。一般來說,對某個微服務進行修改,只需要重新部署這個服務即可。
4 技術棧不受限制:在微服務架構中,可以結合項目業務及團隊的特點,合理的選擇技術棧。
5 按需伸縮:可根據需求,實現細粒度的擴展。
缺點:
1 運維要求高:更多的服務意味着要投入更多的運維。
2 分佈式固有的複雜性:使用微服務構建的是分佈式系統。對於一個分佈式系統,系統容錯、網絡延遲、分佈式事務等都會帶來巨大的問題。
3 接口調整成本高:微服務之間通過接口進行通信。如果修改某一個微服務的API,可能所有用到這個接口的微服務都需要進行調整。

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