日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

服务间调用要通过网关吗_Asp.Net Boilerplate微服务实战(二)架构解析

發布時間:2025/3/20 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 服务间调用要通过网关吗_Asp.Net Boilerplate微服务实战(二)架构解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????這一章節,我來介紹一下Asp.Net Boilerplate框架在微服務開發中所用到的技術及其大體的組織架構。由于本系列僅討論ABP框架在微服務架構下的應用方案,不涉及具體的業務邏輯,所以在文中,不討論服務拆分方案等細節,也未采用中臺架構等復雜架構方案,此類方案可依據業務需求進行設計,與Asp.Net Boilerplate框架本身無關。

????雖然Asp.Net Boilerplate和AbpvNext從框架層面有很大區別,會影響到微服務的分層和模塊組織方式等細節實現,但是對于微服務的總體架構及技術選型方面差別不大。

? ? 這里,我借用ABPvNext的一張微服務架構示意圖:

我們會用到圖中提及的一下技術:????

  • API網關作為服務調用的總入口,同時負責了負載均衡、身份認證、熔斷、限流等功能,Ocelot是基于.NetCore實現的一個主流API網關,對于以.Net技術為主的研發人員來說,更容易使用及修改。

  • IdentityServer也是基于.NetCore開發,是ABP官方推薦的身份認證框架。在這里,我們也同樣以IdentityServer4作為身份認證中心。

  • ELK(Elasticsearch、Logstash、Kibana)是目前最常用的日志服務之一(不僅限于.Net技術棧),實際使用中,我們通常會有直接寫入lasticsearch、使用ELK+Filebeat、ELK+Kafuka等多種方式。

  • 微服務間通訊方式有同步和異步兩種方式,需要依據不同業務場景進行選擇。其中同步通訊有多種實現方式,這里我使用了和AbpvNext微服務Demo相同的內外雙網關方式,服務間調用通過內網關調用WebAPI接口方式實現。

  • AbpvNext提供了跨服務的事件總線機制,但是Asp.Net Boilerplate未對此進行封裝和支持,需要我們額外進行開發。

? ? 除此之外,我們還會用到其他一些組成微服務架構必須的技術組件:

  • 服務注冊和發現采用Consul

  • 配置中心采用Apollo

  • 應用性能監測采用Skywalking

? ? 在此基礎上,我們會發現即使我們按照業務聚合拆分了不同的網關,單一網關能夠承載的服務數量依舊非常有限。通常我會使用Nginx作為作為上層負載均衡機制,組成網關集群。或依據項目訪問量需求,使用云服務提供商提供的SLB組成更加復雜的負載均衡方案。

????最終我們用到的技術模塊如下:

????后面幾期,我會按照各個模塊分別對Asp.Net Boilerplate在微服務架構中的應用細節進行分享,敬請期待……

總結

以上是生活随笔為你收集整理的服务间调用要通过网关吗_Asp.Net Boilerplate微服务实战(二)架构解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。