1.1什么是微服務
目前的微服務並沒有一個統一的標准,核心就是將傳統的一站式應用,根據業務來划分將傳統的一站式應用,拆分成一個個的服務,徹底去耦合,一個微服務就是單功能業務,只做一件事。
從技術角度來看就是一種小而獨立的處理過程,類似進程概念,能夠自行單獨啟動或銷毀,擁有自己獨立的數據庫。
1.2微服務與微服務架構
微服務架構是一種架構模式或者一種架構風格,提倡將單一應用程序划分成一組小的服務==獨立部署==,服務之間相互配合、相互協調,每個服務運行於自己的進程中。
服務與服務間采用輕量級通訊,如HTTP的RESTful API等
避免統一的、集中式的服務管理機制
1.3微服務的優缺點
優點
每個服務足夠內聚,足夠小,比較容易聚焦
開發簡單且效率高,一個服務只做一件事情
開發團隊小,一般2-5人足以(當然按實際為准)
微服務是松耦合的,無論開發還是部署都可以獨立完成
微服務能用不同的語言開發
易於和第三方集成,微服務允許容易且靈活的自動集成部署(持續集成工具有Jenkins,Hudson,bamboo等)
微服務易於被開發人員理解,修改和維護,這樣可以使小團隊更加關注自己的工作成果,而無需一定要通過合作才能體現價值
微服務允許你融合最新的技術
微服務只是業務邏輯的代碼,不會和HTML,CSS或其他界面組件融合。
每個微服務都可以有自己的存儲能力,數據庫可自有也可以統一,十分靈活。
缺點
開發人員要處理分布式系統的復雜性
多服務運維難度,隨着服務的增加,運維的壓力也會增大
依賴系統部署
服務間通訊的成本
數據的一致性
系統集成測試
性能監控的難度