溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ASP.NET Core微服務(wù)框架Ocelot+Consul+IdentityServer4的操作方法

發(fā)布時間:2021-09-23 09:10:57 來源:億速云 閱讀:267 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關(guān)ASP.NET Core微服務(wù)框架Ocelot+Consul+IdentityServer4的操作方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

一、背景介紹

API網(wǎng)關(guān)的流行源于最近幾年移動應(yīng)用與企業(yè)間接口對接的興起,使得原來單一的PC客戶端,變化到PC客戶端、各種瀏覽器、手機(jī)移動端及智能終端等。同時系統(tǒng)之間大部分都不是單獨(dú)運(yùn)行,經(jīng)常會涉及與其他系統(tǒng)對接、共享數(shù)據(jù)的需求。隨著微服務(wù)架構(gòu)概念的提出,API網(wǎng)關(guān)成為了微服務(wù)架構(gòu)的一個標(biāo)配組件。隨著業(yè)務(wù)快速發(fā)展,面向手機(jī)移動應(yīng)用業(yè)務(wù)越來越多,為了減少客戶端與服務(wù)的耦合,節(jié)約后端微服務(wù)的開發(fā)成本,建立一個高性能、高可用、減少上線風(fēng)險(xiǎn)的API網(wǎng)關(guān)成為一個迫切的需求。

1)、目前面臨現(xiàn)狀:假設(shè)你正好是一個后端開發(fā),而老板又剛好讓你開發(fā)網(wǎng)站,其中需要涉及到很多后端的微服務(wù),比如會員、商品、推薦服務(wù)等等。那么這里就會遇到一個問題,APP/Browser怎么去訪問這些后端的服務(wù)?如果業(yè)務(wù)比較簡單的話,可以給每個業(yè)務(wù)都分配一個獨(dú)立的域名(https://service.api.company.com),但這種方式會有幾個問題:每個業(yè)務(wù)都會需要鑒權(quán)、限流、權(quán)限校驗(yàn)等邏輯,如果每個業(yè)務(wù)都各自為戰(zhàn),自己造輪子實(shí)現(xiàn)一遍,會很蛋疼,完全可以抽出來,放到一個統(tǒng)一的地方去做。

2)、有效的解決辦法:更好的方式是采用API網(wǎng)關(guān),實(shí)現(xiàn)一個API網(wǎng)關(guān)接管所有的入口流量,類似Nginx的作用,將所有用戶的請求轉(zhuǎn)發(fā)給后端的服務(wù)器,但網(wǎng)關(guān)做的不僅僅只是簡單的轉(zhuǎn)發(fā),也會針對流量做一些擴(kuò)展。比如鑒權(quán)、限流、權(quán)限、熔斷、協(xié)議轉(zhuǎn)換、錯誤碼統(tǒng)一、緩存、日志、監(jiān)控、告警等,這樣將通用的邏輯抽出來,由網(wǎng)關(guān)統(tǒng)一去做,業(yè)務(wù)方也能夠更專注于業(yè)務(wù)邏輯,提升迭代的效率。通過引入API網(wǎng)關(guān),客戶端只需要與API網(wǎng)關(guān)交互,而不用與各個業(yè)務(wù)方的接口分別通訊,

本次分享課程阿笨將在基于上兩堂課程的基礎(chǔ)上以ASP .NET Core 為例子,目前比較火熱的就是 ocelot+consul 的搭配,通過在服務(wù)中嵌入 ocelot 和 consul 的客戶端,自動的完成服務(wù)注冊到(Consul)和服務(wù)發(fā)現(xiàn)(ocelot讀取Consul中的服務(wù));當(dāng)用戶訪問某個 url 的時候,ocelot 將會根據(jù)路由將用戶請求轉(zhuǎn)發(fā)到從 Consul 拉取到的真正的服務(wù)中同時通過統(tǒng)一身份認(rèn)證授權(quán)中心IdentityServer4進(jìn)行鑒權(quán)。

二、ASP.NET Core微服務(wù)框架Ocelot+Consul+IdentityServer4項(xiàng)目結(jié)構(gòu)介紹

ASP.NET Core微服務(wù)框架Ocelot+Consul+IdentityServer4的操作方法

ASP.NET Core微服務(wù)框架Ocelot+Consul+IdentityServer4實(shí)戰(zhàn)演練

三、 Consul服務(wù)注冊與發(fā)現(xiàn)介紹

四、下游微服務(wù)通過API接入Consul

五、Ocelot網(wǎng)關(guān)介紹

六、Ocelot網(wǎng)關(guān)認(rèn)證授權(quán)流程圖

七、認(rèn)證授權(quán)IdentityServer4介紹以及搭建

八、Ocelot網(wǎng)關(guān)接入認(rèn)證授權(quán)中心

九、Ocelot網(wǎng)關(guān)接入Conusl服務(wù)注冊與發(fā)現(xiàn)

十、Ocelot網(wǎng)關(guān)統(tǒng)一查看多個API微服務(wù)Swagger接口文檔

網(wǎng)關(guān)在硬件里有自己的定義,而在軟件架構(gòu)里也有自己的解釋,它就是所有請求的入口,請求打到網(wǎng)關(guān)上,經(jīng)過處理和加工,再返回給客戶端,這個處理過程中當(dāng)然就是網(wǎng)關(guān)的核心,也是Ocelot的核心,我們可以把用戶授權(quán),校驗(yàn),緩存,認(rèn)證等很多關(guān)注點(diǎn)在網(wǎng)關(guān)中實(shí)現(xiàn)!

看完上述內(nèi)容,你們對ASP.NET Core微服務(wù)框架Ocelot+Consul+IdentityServer4的操作方法有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI