天天看點

【轉】15種微服務架構架構彙總

這幾年來,微服務這個概念越來越火了,火到什麼程度呢?2019年有一個統計說,兩千家企業裡,45%在使用微服務,16%在實驗開發和測試微服務架構,24%在學習微服務準備轉型,隻有剩下的15%的企業沒有使用微服務。

微服務到底有什麼好呢?微服務在2013年才被提出,短短幾年就有這麼快速的發展。微服務架構能夠實作由小型自主服務組成一個整體應用,各個組成部分之間是松耦合的,複雜性低,各個部分可以獨立部署,修複bug或者引入新特性更容易,能夠獨立擴充,不同技術棧之間可以使用不同架構、不同版本庫甚至不同的作業系統平台。

​​

【轉】15種微服務架構架構彙總

​​

對于中大型架構系統來說,微服務更加便捷,微服務成為很多企業架構重構的方向,同時也對架構師提出更高的挑戰。目前有很多常用于微服務建構的架構,對于建構微服務架構能夠帶來一些幫助。

Java語言相關微服務架構

Spring Boot

Spring Boot的設計目的是簡化新Spring應用初始搭建以及開發過程,2017年有64.4%的受訪者決定使用Spring Boot,可以說是最受歡迎的微服務開發架構。利用Spring Boot開發的便捷度簡化分布式系統基礎設施的開發,比如像配置中心、注冊、負載均衡等方面都可以做到一鍵啟動和一鍵部署。

Spring Cloud

Spring Cloud是一個系列架構的合計,基于HTTP(s)的RETS服務建構服務體系,Spring Cloud能夠幫助架構師建構一整套完整的微服務架構技術生态鍊。

​​

【轉】15種微服務架構架構彙總

​​

Dubbo

Dubbo是由阿裡巴巴開源的分布式服務化治理架構,通過RPC請求方式通路。Dubbo是在阿裡巴巴的電商平台中逐漸探索演進所形成的,經曆過複雜業務的高并發挑戰,比Spring Cloud的開源時間還要早。目前阿裡、京東、當當、攜程、去哪等一些企業都在使用Dubbo。

Dropwizard

Dropwizard将Java生态系統中各個問題域裡最好的組建內建于一身,能夠快速打造一個Rest風格的背景,還可以整合Dropwizard核心以外的項目。國内現在使用Dropwizard還很少,資源也不多,但是與Spring Boot相比,Dropwizard在輕量化上更有優勢,同時如果用過Spring,那麼基本也會使用Spring Boot。

Akka

Akka是一個用Scala編寫的庫,可以用在有簡化編寫容錯、高可伸縮性的Java和Scala的Actor模型,使用Akka能夠實作微服務叢集。

Vert.x/Lagom/ReactiveX/Spring 5

這四種架構主要用于響應式微服務開發,響應式本身和微服務沒有關系,更多用于提升性能上,但是可以和微服務相結合,也可以提升性能。

​​

【轉】15種微服務架構架構彙總

​​

.Net相關微服務架構

.NET Core

.NET Core是專門針對子產品化微服務架構設計的,是跨平台應用程式開發架構,是微軟開發的第一個官方版本。

Service Fabric

Service Fabric是微軟開發的一個微服務架構,基于Service Fabric建構的很多雲服務被用在了Azure上。

Surging

Surging是基于RPC協定的分布式微服務技術架構,基于.NET Core而來。

Microdot Framework

Microdot Framework用于編寫定義服務邏輯代碼,不需要解決開發分布式系統的挑戰,能夠很友善的進行MicrosoftOrleans內建。

​​

【轉】15種微服務架構架構彙總

​​

Node.js相關微服務架構

Seneca

Seneca是Node.js的微服務架構開發工具,可以用于編寫可用于産品環境的代碼。

Hapi/Restify/LoopBack

這三種架構的分工不同,前兩種更适合開發簡單的微服務後端系統,第三種更适合用在大型複雜應用開發,還可以用在現有微服務上的建構。

Go相關微服務架構

Go-Kit/Goa/Dubbogo

Go-Kit是分布式開發的工具合集,适合用于大型業務場景下建構微服務;Goa是用Go語言建構的微服務架構;Dubbogo是和阿裡巴巴開源的Dubbo能夠相容的Golang微服務架構。

Python相關微服務架構

Python相關的微服務架構非常少,用的比較多的是Nameko。Nameko讓實作微服務變得更簡單,同時也提供了很豐富的功能,比如支援負載均衡、服務發現還支援依賴自動注入等,使用起來很友善,但是有限速、逾時和權限機制不完善等缺點。

總結

繼續閱讀