服務通訊是微服務架構中必不可少的功能,服務通訊的效率決定了微服務架構的優略。常用的微服務通訊策略有兩種,分別是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 的一篇部落格。他在自己部落格中闡述了微服務六個特點 創業初期 很快完成後,找了家雲服務部署上線,開始了創業之路。規模擴大 這一階段存在著很多不合理的地方 做出改變 在程式設計的世界裡,最重要的是抽象能力,通過整理業務邏輯,抽象初公共的業務...