微服務主張將單個應用分成壹組小服務,相互協調配合,為用戶提供終極價值。每個服務運行在自己獨立的進程中,服務之間使用輕量級的通信機制(通常是基於HTTP的RESTful API)進行通信。
每個服務都是圍繞特定的業務而構建的,可以獨立部署到生產環境、準生產環境等等。此外,應盡可能避免統壹和集中的服務管理機制。對於特定的服務,應該根據上下文選擇合適的語言和工具。
微服務的合適工具:
在傳統的N層架構模式中,應用程序通常共享壹個公共堆棧,而大型關系數據庫支持整個應用程序。這種方法有幾個明顯的缺點——主要缺點是,即使對於某些元素有壹個明確的、更好的工具,應用程序的每個組件也必須* * *共享壹個公共的棧、數據模型和數據庫。
它導致了糟糕的架構和沮喪的開發人員,他們不斷地意識到他們可以用更好更有效的方式來構建這些組件。
相比之下,在微服務模型中,組件是獨立部署的,並通過REST、事件流和消息代理的某種組合進行通信——因此,每個單獨服務的堆棧都可以針對該服務進行優化。技術壹直在變化,隨著更理想技術的發展,由多個更小的服務組成的應用程序變得更容易、更便宜。