1. 程式人生 > >總結下微服務

總結下微服務

bsp 功能 人的 web 混合 開發人員 成員 proto dev

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)

總結下微服務