摘要:微服務(wù)如何演變而來網(wǎng)關(guān)在微服務(wù)中如何發(fā)揮作用本文將以此作為話題,聊聊網(wǎng)關(guān)如何影響企業(yè)技術(shù)架構(gòu)的演變。微服務(wù)之間相互獨(dú)立,使用者無需配置環(huán)境,直接調(diào)用即可完成開發(fā)。
互聯(lián)網(wǎng)技術(shù)日新月異,項(xiàng)目架構(gòu)不斷升級優(yōu)化。隨著企業(yè)微服務(wù)的興起和第三方API的發(fā)展,API網(wǎng)關(guān)這一作為微服務(wù)核心組件的產(chǎn)品也逐漸被越來越多的人認(rèn)識。微服務(wù)如何演變而來?網(wǎng)關(guān)在微服務(wù)中如何發(fā)揮作用?本文將以此作為話題,聊聊API網(wǎng)關(guān)如何影響企業(yè)技術(shù)架構(gòu)的演變。
一、互聯(lián)網(wǎng)架構(gòu)的演變 1. 單體架構(gòu)計(jì)算機(jī)發(fā)展初期,又或者很多初創(chuàng)公司為了快速開發(fā)的時候,會將應(yīng)用程序的業(yè)務(wù)處理與數(shù)據(jù)處理都放在一起,整體打包成應(yīng)用程序,這就是單體架構(gòu)。
優(yōu)點(diǎn):足夠簡單、易于開發(fā)。
缺點(diǎn):耦合度非常高,不易維護(hù)。
Web應(yīng)用的興起,讓界面部分在瀏覽器展示,數(shù)據(jù)處理在服務(wù)器進(jìn)行,兩個地方使用的語言也不同,前后端分離應(yīng)運(yùn)而生。項(xiàng)目里也可以分為表現(xiàn)層、業(yè)務(wù)層、持久層、數(shù)據(jù)庫等,演變?yōu)槲覀兂Uf的MVC架構(gòu)。
優(yōu)點(diǎn):層次分明,結(jié)構(gòu)簡單,可分層測試。
缺點(diǎn):擴(kuò)展性不夠強(qiáng),隨著模塊的增加,應(yīng)用會愈發(fā)臃腫,維護(hù)難度相應(yīng)加大。
隨著業(yè)務(wù)量與用戶規(guī)模增大,一臺主機(jī)上提供的資源是有限的,于是漸漸把應(yīng)用和數(shù)據(jù)分離開,把原來的一個應(yīng)用按照業(yè)務(wù)特點(diǎn)拆分成多個應(yīng)用,它們之間各自獨(dú)立,不互相調(diào)用。像是一個電商系統(tǒng)通常會分為用戶系統(tǒng)、商品系統(tǒng)、訂單系統(tǒng)等。
優(yōu)點(diǎn):資源分散,方便維護(hù)。
缺點(diǎn):分割后的應(yīng)用各自獨(dú)立,共同業(yè)務(wù)的代碼無法復(fù)用。
多應(yīng)用存在代碼難以復(fù)用的問題,此時可以考慮將公共服務(wù)提取出來,獨(dú)立部署,這樣一來,模塊也更容易拓展與維護(hù)。系統(tǒng)從多個應(yīng)用變成一個個模塊化的服務(wù)組件,這就是分布式架構(gòu)。
優(yōu)點(diǎn):應(yīng)用解耦,不同團(tuán)隊(duì)負(fù)責(zé)不同模塊,服務(wù)間可通信。
缺點(diǎn):架構(gòu)開始復(fù)雜。
當(dāng)一個服務(wù)組件的粒度細(xì)化到API級別,通過一個或一組API提供完整功能,就演變成現(xiàn)在的微服務(wù)架構(gòu)。微服務(wù)之間相互獨(dú)立,使用者無需配置環(huán)境,直接調(diào)用API即可完成開發(fā)。
優(yōu)點(diǎn):服務(wù)獨(dú)立、易于開發(fā)測試、易于維護(hù)。
缺點(diǎn):要進(jìn)行微服務(wù)治理,包括服務(wù)注冊發(fā)現(xiàn)、API監(jiān)控、認(rèn)證鑒權(quán)、負(fù)載均衡等。
要實(shí)現(xiàn)微服務(wù),網(wǎng)關(guān)是必不可少的一環(huán),網(wǎng)關(guān)承載著流量控制、監(jiān)控告警、鑒權(quán)、參數(shù)校驗(yàn)、路由轉(zhuǎn)發(fā)、緩存、負(fù)載均衡等工作。
網(wǎng)關(guān)是一個要求高并發(fā)、高可用、高性能的項(xiàng)目,在沒有開源項(xiàng)目的支撐下,自己開發(fā)網(wǎng)關(guān)是一個非常大的工作量。
秉承著開源精神,eoLinker推出國內(nèi)首款企業(yè)級開源的Go語言網(wǎng)關(guān)—— GoKu Gateway。eoLinker擁有全面的API管理產(chǎn)品,Goku Gateway作為eoLinker旗下的開源API網(wǎng)關(guān),能夠幫助企業(yè)整理內(nèi)部API資源,進(jìn)行API服務(wù)治理與維護(hù),實(shí)現(xiàn)諸如鑒權(quán)、請求過濾、流控等需求。
一個GoKu可以新建多個網(wǎng)關(guān),每個網(wǎng)關(guān)下包含策略組、API與后端服務(wù),其中策略組包含了網(wǎng)關(guān)大多數(shù)的處理操作,包括鑒權(quán)、限流、IP黑白名單等。
GoKu特性:部署簡單:基于golang,僅需一個go環(huán)境即可運(yùn)行使用。
多種鑒權(quán)方式:支持Basic認(rèn)證、API Key認(rèn)證、IP認(rèn)證等方式。
權(quán)限管理:針對不同策略組設(shè)置流控控制策略,包括QPS、訪問總次數(shù)、訪問IP、訪問時間段等。
IP黑白名單:支持全局IP白名單、也可自定義某個接口的IP白名單。
數(shù)據(jù)整形:支持參數(shù)的轉(zhuǎn)換與綁定,支持formdata、raw、json、file參數(shù)。
……
GoKu剛開源不久,很多地方有待完善,歡迎大家加入我們的用戶討論群:725853895,給我們提意見,跟我們交流想法。
github:https://github.com/eolinker/G...
gitee: https://gitee.com/eoLinker-AP...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/69508.html
摘要:即配置網(wǎng)絡(luò)和解除網(wǎng)絡(luò)配置。類類型的插件,在執(zhí)行命令時會分配一個給調(diào)用者。執(zhí)行命令時會將調(diào)用者指定的放回池。向刪除時,同樣通過請求,解除該的租約。組件通常在組件執(zhí)行完畢后執(zhí)行 目前不論是個人還是企業(yè),在使用k8s時,都會采用CNI作為集群網(wǎng)絡(luò)方案實(shí)現(xiàn)的規(guī)范。 在早先的k8s版本中,kubelet代碼里提供了networkPlugin,networkPlugin是一組接口,實(shí)現(xiàn)了pod的網(wǎng)...
摘要:在開發(fā)之前你要有微信開發(fā)者工具。同時為了更適合開發(fā)微信小程序,還對進(jìn)行了擴(kuò)充以及修改,直接幫我們把適配的一部分工作都做了,比如他的,可以根據(jù)屏幕寬度進(jìn)行自適應(yīng),規(guī)定屏幕寬為。 本文由云+社區(qū)發(fā)表 這段時間有幸加入了一個關(guān)于微信小程序的項(xiàng)目開發(fā)組,從無到有的根據(jù)文檔自行學(xué)習(xí)了小程序的開發(fā)過程,前面已經(jīng)有幾位前輩的文章珠玉在前,我這里就先從前端界面的開發(fā)方面談一談小程序以及我所遇到的問題吧...
摘要:的第一部分被稱為方案,說明了訪問資源所使用的協(xié)議類型。狀態(tài)碼位于響應(yīng)的起始行中。是超文本傳輸協(xié)議,信息是明文傳輸,則是具有安全性的加密傳輸協(xié)議。協(xié)議是由協(xié)議構(gòu)建的可進(jìn)行加密傳輸身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,要比協(xié)議安全。 HTTP概述 HTTP (HyperText Transfer Protocol,超文本傳輸協(xié)議)。 Web是建立在HTTP協(xié)議通信的。 HTTP 是個應(yīng)用層協(xié)議。HTTP ...
閱讀 909·2021-09-09 09:32
閱讀 2849·2021-09-02 10:20
閱讀 2685·2021-07-23 11:24
閱讀 824·2019-08-30 15:54
閱讀 3631·2019-08-30 15:54
閱讀 1346·2019-08-30 11:02
閱讀 2844·2019-08-26 17:40
閱讀 1122·2019-08-26 13:55