微服務是一種架構模式或者一種架構風格,提倡將單一應用程序劃分紅一組小的服務==獨立部署==,服務之間相互配合、相互協調,每一個服務運行於本身的==進程==中。架構
服務與服務間採用輕量級通信,如HTTP的RESTful API等。避免統一的、集中式的服務管理機制負載均衡
優勢:框架
每一個服務足夠內聚,足夠小,比較容易聚焦運維
開發簡單且效率高,一個服務只作一件事情分佈式
開發團隊小,通常2-5人足以(固然按實際爲準)微服務
微服務是鬆耦合的,不管開發仍是部署均可以獨立完成工具
微服務能用不一樣的語言開發性能
易於和第三方集成,微服務容許容易且靈活的自動集成部署(持續集成工具備Jenkins,Hudson,bamboo等)開發工具
微服務易於被開發人員理解,修改和維護,這樣可使小團隊更加關注本身的工做成果,而無需必定要經過合做才能體現價值測試
微服務容許你融合最新的技術
缺點:
開發人員要處理分佈式系統的複雜性
多服務運維難度,隨着服務的增長,運維的壓力也會增大
依賴系統部署
服務間通信的成本
數據的一致性
系統集成測試
性能監控的難度
Spring Boot 是 Spring 的一套快速配置腳手架,能夠基於Spring Boot 快速開發單個微服務,Spring Cloud是一個基於Spring Boot實現的雲應用開發工具;Spring Boot專注於快速、方便集成的單個微服務個體,Spring Cloud關注全局的服務治理框架;Spring Boot使用了默認大於配置的理念,不少集成方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基於Spring Boot來實現,但Spring Boot能夠離開Spring Cloud獨立開發。
服務發現——Netflix Eureka
服務調用——Netflix Feign
熔斷器——Netflix Hystrix
服務網關——Netflix Zuul
分佈式配置——Spring Cloud Config
消息總線 —— Spring Cloud Bus