維基百科中是這麼定義的:微服務 (Microservices) 是一種軟件架構風格,它是以專一於單一責任與功能的小型功能區塊 (Small Building Blocks) 爲基礎,利用模組化的方式組合出複雜的大型應用程序,各功能區塊使用與語言無關 (Language-Independent/Language agnostic) 的 API 集相互通信。spring
維基百科中是這麼定義的:面向服務的體系結構(英語:service-oriented architecture)並不特指一種技術,而是一種分佈式運算的軟件設計方法。軟件的部分組件(調用者),能夠經過網絡上的通用協議調用另外一個應用軟件組件運行、運做,讓調用者得到服務。docker
Spring Boot是由Pivotal團隊提供的全新框架設計方式,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。它使用「習慣優於配置」的理念讓你的項目快速運行起來。所以Spring Boot並不能說是一個框架,而是一個集合或者工具。服務器
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,均可以用Spring Boot的開發風格作到一鍵啓動和部署。網絡
維基百科中是這麼定義的:Docker是一個開放源代碼軟件項目,讓應用程序佈署在軟件容器下的工做能夠自動化進行,藉此在Linux操做系統上,提供一個額外的軟件抽象層,以及操做系統層虛擬化的自動管理機制[1]。Docker利用Linux核心中的資源分脫機制,例如cgroups,以及Linux核心名字空間(name space),來建立獨立的軟件容器(containers)。這能夠在單一Linux實體下運做,避免引導一個虛擬機形成的額外負擔。架構
1.微服務並非一個全新的框架,是一種軟件架構設計風格。負載均衡
2.微服務也屬於SOA,只是與傳統的SOA存在着一些差異。微服務能夠看做是SOA概念的昇華,微服務中對於業務拆分更加細粒度,微服務更傾向於去中心化,去ESB總線。框架
3.Spring Boot和SpringCloud組合,是開發微服務的一個黃金組合套裝。單並非說這兩個東西纔是微服務,只是咱們更習慣用這兩個套件來進行開發,咱們也同樣可使用其餘工具來開發微服務。分佈式
4.Docker是一種容器,基於LXC實現的。Docker的抽象性和隔離性很是適合部署微服務。但也並非說只有Docker纔是微服務或者只有Docker才能部署微服務。咱們使用VM,甚至物理機同樣能夠部署微服務,只是從量級以及編排部署等方面考慮,使用Docker容器更容器部署和管理微服務。微服務
分佈式架構即服務化。服務化主要有以下特色:工具
1.應用按業務拆分紅服務
2.各個服務都可獨立部署
3.服務可被多個應用共享
4.服務之間能夠通訊
若是要實現服務化的話,最經常使用的方式就是利用RPC框架。由於服務組件通常分佈在不一樣的服務器上,因此要實現服務化須要解決的第一個問題就是RPC遠程服務調用。相似於RPC方案有不少,好比:
Java RMI
WebService
Hessian
Http
Thrift
… …