Abp vNext微服務實踐 服務通訊

2022-01-15 00:38:06 字數 1132 閱讀 4366

服務通訊是微服務架構中必不可少的功能,服務通訊的效率決定了微服務架構的優略。常用的微服務通訊策略有兩種,分別是rpc、http,其中rpc以grpc框架為代表使用者最多。abp vnext微服務架構中當然也有服務通訊策略,採用的是http方式進行服務通訊。

雖然grpc高效安全,但是相關的.net框架實在臃腫難用,這一缺陷在.net core3.x後可能會得到完美解決。abp vnext微服務架構出現在.net core3.0以前,所以選擇了靈活方便的http進行服務通訊。微服務通訊中http策略效率雖然低於grpc,但是包裝json後通過容器服務內部呼叫效率也是槓槓的。http作為服務通訊的最大好處是使用者請求http api介面後,內部服務請求其他服務時會攜帶使用者的http header(身份資訊)。abp vnext微服務架構中使用ids4整合了統一的授權服務,所有介面授權均通過jwt-bearer形式,這種方式讓http服務內部通訊策略的身份和許可權驗證變得簡單方便。

abp vnext微服務架構中提供了內部通訊網關(internalgateway),所有內部服務介面呼叫均通過該閘道器服務。下面將介紹如何通過內部閘道器呼叫微服務介面。

step1:引用abphttpclientidentitymodelmodule、abpidentityhttpapiclientmodule模組

step2:注入應用服務

step3:呼叫介面

在應用服務介面中呼叫使用者應用服務介面:

step4:配置遠端服務介面

配置微服務中遠端服務位址,遠端服務就是內部閘道器位址。

測試介面

儘管介面查詢業務比較複雜,而且經過遠端服務介面呼叫,但是postman測試介面時間在100ms內,總的來說效能優越。

1、簡單,通過以上操作可以看出,abp vnext中的微服務介面呼叫十分簡單,就像普通的倉儲呼叫一樣。

2、高效,雖然http方式的服務通訊效率低於prpc框架,但是json包裝後的http請求速度也非常可觀。

3、安全,相比grpc框架,使用http進行服務通訊時會驗證身份和許可權,保證了微服務的通訊安全。

最近abp發布了1.0版本,想要轉型微服務的盆友感覺get起來吧。

Abp vNext微服務實踐 新增中文語言

abp vnext中提供了多語言功能,預設語言是英文,沒有提供中文語言包。在業務開發中,定義許可權後需要用中文的備註提供角色選擇,本篇將介紹如何在abp vnext中加入中文語言。在zh.json中給許可權定義新增中文描述,json如下 在vs中選擇高階儲存 utf 8儲存。在productmana...

Abp vNext微服務實踐 文章目錄

筆者曾使用舊版abp搭建微服務架構,在abp vnext 推出後立即開始了新版的研究,在經過實際的開發和部署後覺得abp vnext 更適合微服務架構,所以這裡整理了我在abp vnext 微服務架構的研究和實踐隨筆系類。由於筆者乙個人精力有限,文章的推出可能有些緩慢,但是基於以上實踐文章已經可以搭...

微服務實踐 什麼是微服務

微服務是一種軟體架構風格,該詞 於martin fowler 的一篇部落格。他在自己部落格中闡述了微服務六個特點 創業初期 很快完成後,找了家雲服務部署上線,開始了創業之路。規模擴大 這一階段存在著很多不合理的地方 做出改變 在程式設計的世界裡,最重要的是抽象能力,通過整理業務邏輯,抽象初公共的業務...