.Net微服務實踐(一):微服務框架選型

微服務框架

微服務(Microservices)是一種架構風格,一個大型複雜軟件應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署,各個微服務之間是鬆耦合的。每一個微服務僅關注於完成一件任務並很好地完成該任務。在全部狀況下,每一個任務表明着一個小的業務能力。html

以往咱們開發應用程序都是單體型,雖然開發和部署比較方便,但後期隨着業務的不斷增長,開發迭代和性能瓶頸等問題,將會困擾開發團隊,微服務就是解決此問題的有效手段。前端

那麼咱們在具體實踐落地微服務時,咱們又須要作什麼?一個微服務框架到底又有什麼呢?特別是對於.NET生態圈的小夥伴們,一直都有不少困惑,不知該如何下手。spring

既然咱們不知道,又要高清楚,那最好的辦法是什麼呢?我認爲最有效的方式是研究成熟的產品。市面上成熟的微服務框架有一些, 而SpringCloud就是可供研究的對象,下面咱們一塊兒來看看SpringCloud是什麼?後端

SpringCloud

SpringCloud技術棧

從上面的技術棧圖中能夠看出:api

  • 微服務框架核心是服務治理
  • 服務治理的核心組件包括網關服務註冊與發現服務調用

SpringCloud核心組件

組件 選型 備註
網關 Zuul
服務註冊與發現 Eureka
Consul
zookeeper
服務調用 Feign 根據註解和選擇機器,拼接Url地址,發起請求
簡化服務調用
負載均衡 Ribbon 服務調用負載均衡,配合Feign和Euraka使用
斷路器 Hystrix 隔離、熔斷以及降級的一個框架
服務線程池隔離,實現不一樣服務的調度隔離,避免服務雪崩

核心組件工做原理

Eureka:服務啓動時,Eureka會將服務註冊到EurekaService,而且EurakeClient還能夠返回過來從EurekaService拉去註冊表,從而知道服務在哪裏安全

Ribbon:服務間發起請求的時候,基於Ribbon服務作到負載均衡,從一個服務的對臺機器中選擇一臺架構

Feign:基於fegin的動態代理機制,根據註解和選擇機器,拼接Url地址,發起請求負載均衡

Hystrix:發起的請求是經過Hystrix的線程池來走,不一樣的服走不一樣的線程池,實現了不一樣的服務調度隔離,避免服務雪崩的問題框架

Zuul:若是前端後端移動端調用後臺系統,統一走zull網關進入,有zull網關轉發請求給對應的服務微服務

說明:若是.Net Core平臺下想要使用SpringCloud,可經過steeltoe來實現,具體可參考 https://steeltoe.io/

微服務架構組件

一個較完整的微服務架構包含的以下的組件

組件 選型
網關 Zuul
Ocelot
Kong
Tyk
Orange
Spring Cloud Gateway
apiaxle
api-umbrella
服務註冊與發現 Eureka
Consul
zookeeper
服務調用 Feign
restTemplate
負載均衡 Ribbon
斷路器 Hystrix
配置管理 Spring Cloud Config
鏈路追蹤 Spring Cloud Sleuth
Zipkin
HTrace
SkyWalking
安全 Spring Cloud Security
Auth2
IdentityServer4
監控 spectator
atlas
消息、事件總線 Spring Cloud Bus (Redis、RabbitMQ、Kafaka)

最後

上面已經介紹了一個微服務框架所包含的架構組件,那麼.NET下如何落地呢?接下來咱們從網關開始來一步一步實踐。 .NET下的網關,咱們推薦使用Ocelot,來開始咱們的Ocelot之旅. .Net微服務實踐(二):Ocelot介紹和快速開始

相關文章
相關標籤/搜索