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