微服務(wù)架構(gòu) 微服務(wù)怎么實現(xiàn)?是前端還是后端的事?
微服務(wù)怎么實現(xiàn)?是前端還是后端的事?1. 事實上,我對微服務(wù)的理解是,它們是特定于功能的,易于升級和擴展。微服務(wù)具有分而治之的思想。2. Vue和python是集成的,前端和后端可以通過HTTP進行交
微服務(wù)怎么實現(xiàn)?是前端還是后端的事?
1. 事實上,我對微服務(wù)的理解是,它們是特定于功能的,易于升級和擴展。微服務(wù)具有分而治之的思想。
2. Vue和python是集成的,前端和后端可以通過HTTP進行交互分離,Vue通過HTTP請求,python提供服務(wù)。這是前后端分離的雛形。
3. 第三代微服務(wù)是通過集裝箱化設(shè)計的。打電話給對方。
企業(yè)級微服務(wù)架構(gòu)下API保護和控制層如何做?
在spring云方面,要實現(xiàn)API的認(rèn)證和保護,需要與JWT技術(shù)(無狀態(tài))合作。一般有兩種方法:
方法一:
直接在網(wǎng)關(guān)中設(shè)置各種過濾器,配置一定的路由攔截規(guī)則,將部分用戶認(rèn)證碼編碼到網(wǎng)關(guān)中,實現(xiàn)網(wǎng)關(guān)端的初步認(rèn)證和認(rèn)證。這意味著超過90%的系統(tǒng)認(rèn)證是在網(wǎng)關(guān)上進行的。所有客戶端都請求網(wǎng)關(guān)的地址,而不是微服務(wù)的實際地址。當(dāng)請求通過nginx到達springcloud網(wǎng)關(guān)時,網(wǎng)關(guān)取出請求的前綴,然后根據(jù)代碼中配置的pre、post、error等過濾器選擇相應(yīng)的過濾器。網(wǎng)關(guān)根據(jù)請求中攜帶的JWT信息,解析后取出憑證信息,如果用戶中心返回正確結(jié)果,則執(zhí)行用戶定義的登錄認(rèn)證邏輯(一般網(wǎng)關(guān)服務(wù)調(diào)用用戶中心服務(wù)進行檢查),網(wǎng)關(guān)服務(wù)接收響應(yīng)結(jié)果,向篩選器返回NULL,并請求繼續(xù)向其他微服務(wù)發(fā)送。執(zhí)行相應(yīng)的業(yè)務(wù)邏輯后,相應(yīng)的業(yè)務(wù)服務(wù)將結(jié)果返回給網(wǎng)關(guān),網(wǎng)關(guān)通過nginx將結(jié)果返回給客戶端。
方法二:原理同上,區(qū)別在于一個新的微服務(wù)叫做用戶授權(quán)認(rèn)證中心。當(dāng)請求到來時,網(wǎng)關(guān)只做最基本的請求驗證,如JWT格式是否合法,JWT是否過期,不再對用戶進行認(rèn)證操作,即不在網(wǎng)關(guān)中查詢用戶,而是調(diào)用用戶授權(quán)認(rèn)證中心,通過必要的參數(shù)到中心對應(yīng)的HTTP方法中,請求后得到結(jié)果并返回給網(wǎng)關(guān),然后網(wǎng)關(guān)給出客戶端特定的信息,如果認(rèn)證失敗,將返回給客戶端。如果身份驗證成功,它將在網(wǎng)關(guān)篩選器中釋放。超過90%的認(rèn)證中心是由網(wǎng)關(guān)授權(quán)的。
這兩種方法都可以使用,但建議使用第二種方法,這更符合微服務(wù)的理念。第一種適用于項目的初始階段。當(dāng)規(guī)模不大時,可以暫時使用。當(dāng)流量出現(xiàn)時,網(wǎng)關(guān)將無法承受,因此從長遠(yuǎn)來看,需要開通新的微服務(wù)來分流流量。
微服務(wù)網(wǎng)關(guān)的作用?
1、統(tǒng)一入口
為所有微服務(wù)提供唯一的入口點,網(wǎng)關(guān)起到內(nèi)外隔離的作用,保證后臺服務(wù)的安全。
2、身份驗證檢查
標(biāo)識每個請求的權(quán)限,并拒絕不符合要求的請求。
3、動態(tài)路由
將請求動態(tài)路由到不同的后端群集。
4、減少耦合
減少客戶端和服務(wù)之間的耦合,服務(wù)可以獨立開發(fā)。通過網(wǎng)關(guān)層映射。