總結下微服務
1.什麽是微服務架構?
微服務是指開發一個單個 小型的但有業務功能的服務,每個服務都有自己的處理和輕量通訊機制,可以部署在單個或多個服務器上。
微服務也指一種種松耦合的、有一定的有界上下文的面向服務架構。也就是說,如果每個服務都要同時修改,那麽它們就不是微服務,因為它們緊耦合在一起;如果你需要掌握一個服務太多的上下文場景使用條件,那麽它就是一個有上下文邊界的服務,這個定義來自DDD領域驅動設計。
2. 微服務優點是什麽?
-
每個微服務都很小,這樣能聚焦一個指定的業務功能或業務需求。
-
微服務能夠被小團隊單獨開發,這個小團隊是2到5人的開發人員組成。
-
微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的。
-
微服務能使用不同的語言開發。
-
微服務允許容易且靈活的方式集成自動部署,通過持續集成工具,如Jenkins, Hudson, bamboo 。
-
一個團隊的新成員能夠更快投入生產。
-
微服務易於被一個開發人員理解,修改和維護,這樣小團隊能夠更關註自己的工作成果。無需通過合作才能體現價值。
-
微服務允許你利用融合最新技術。
-
微服務只是業務邏輯的代碼,不會和HTML,CSS 或其他界面組件混合。
-
微服務能夠即時被要求擴展。
-
微服務能部署中低端配置的服務器上。
-
易於和第三方集成。
-
每個微服務都有自己的存儲能力,可以有自己的數據庫。也可以有統一數據庫。
3. 微服務架構的缺點是什麽?
-
微服務架構可能帶來過多的操作。
-
需要DevOps技巧 (http://en.wikipedia.org/wiki/DevOps).
-
可能雙倍的努力。
-
分布式系統可能復雜難以管理。
-
因為分布部署跟蹤問題難。
-
當服務數量增加,管理復雜性增加。
4. 微服務適合哪種情況?
當你需要支持桌面 web 移動 智能電視 可穿戴時都是可以的,甚至將來你可能不知道但需要支持的某種環境。
5. 微服務之間是如何獨立通訊的?
這依賴需求,通過使用HTTP/REST,數據格式使用JSON 或 Protobuf(Binary protocol),通訊協議是自由的。
(摘自http://m635674608.iteye.com/blog/2304379)
總結下微服務