亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Spring Cloud的微服務(wù)架構(gòu)的應(yīng)用與實(shí)現(xiàn)

        2021-04-03 23:46:40葛萌李闖男歐陽宏基
        現(xiàn)代信息科技 2021年19期

        葛萌 李闖男 歐陽宏基

        摘? 要:傳統(tǒng)單體架構(gòu)存在著開發(fā)技術(shù)單一、系統(tǒng)耦合度高、錯(cuò)誤隔離性差、可收縮性差等缺點(diǎn)。微服務(wù)架構(gòu)以分而治之、可收縮性強(qiáng)、模塊獨(dú)立開發(fā)、迭代周期短等優(yōu)點(diǎn)逐漸成為新一代軟件開發(fā)架構(gòu)用來彌補(bǔ)單體架構(gòu)的缺陷。介紹了微服務(wù)架構(gòu)的基本概念,以Spring Cloud微服務(wù)框架為基礎(chǔ),利用Java語言、中間件技術(shù)和MySQL數(shù)據(jù)庫設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)教師教學(xué)評(píng)價(jià)系統(tǒng)。論述了微服務(wù)架構(gòu)實(shí)現(xiàn)的關(guān)鍵步驟和系統(tǒng)核心模塊的實(shí)現(xiàn)過程,為微服務(wù)架構(gòu)在應(yīng)用中的實(shí)現(xiàn)提供了一定的借鑒。

        關(guān)鍵詞:微服務(wù)架構(gòu);Spring Cloud;中間件技術(shù);教學(xué)評(píng)價(jià)系統(tǒng)

        中圖分類號(hào):TP311? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2021)19-0023-04

        Application and Implementation of Microservice Architecture Based on Spring Cloud

        GE Meng, LI Chuangnan, OUYANG Hongji

        (School of Computer Science, Xianyang Normal University, Xianyang 712000, China)

        Abstract: The traditional monomer architecture has some disadvantages, such as single development technology, high system coupling, poor error isolation, poor scalability and so on. Microservice architecture has gradually become a new generation of software development architecture to make up for the defects of monomer architecture with the advantages of divide and rule, strong contractibility, independent module development and short iteration cycle. This paper introduces the basic concept of microservice architecture, designs and implements a teacher teaching evaluation system based on Spring Cloud microservice framework, Java language, middleware technology and MySQL database. It discusses the key steps of implementation of microservice architecture and the implementation process of system core modules, which provides a certain reference for the implementation of microservice architecture in application.

        Keywords: microservice architecture; Spring Cloud; middleware technology; teaching evaluation system

        0? 引? 言

        傳統(tǒng)的單體應(yīng)用系統(tǒng)架構(gòu)會(huì)隨著軟件規(guī)模和業(yè)務(wù)的擴(kuò)大變得復(fù)雜且不易于擴(kuò)展和維護(hù),微服務(wù)架構(gòu)的出現(xiàn)很好地解決了這個(gè)問題[1]。微服務(wù)架構(gòu)是一種架構(gòu)模式,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù),服務(wù)之間相互協(xié)調(diào)、互相配合,為用戶提供最終價(jià)值。每個(gè)服務(wù)運(yùn)行在其獨(dú)立的進(jìn)程中,服務(wù)和服務(wù)之間采用輕量級(jí)的通信機(jī)制相互溝通。每個(gè)服務(wù)都圍繞著具體的業(yè)務(wù)進(jìn)行構(gòu)建,并且能夠被獨(dú)立的部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等[2]。

        本文以Spring Cloud為微服務(wù)架構(gòu)的實(shí)現(xiàn)框架[3],以教師教學(xué)評(píng)價(jià)為業(yè)務(wù)背景,綜合應(yīng)用Maven管理工具、Mycat中間件、SSM框架[4]、Docker容器等技術(shù),實(shí)現(xiàn)了微服務(wù)開發(fā)的基本流程,詳細(xì)描述了核心模塊的實(shí)現(xiàn)過程,Spring Clound框架的應(yīng)用與實(shí)現(xiàn)提供了一定的參考。

        1? 微服務(wù)架構(gòu)相關(guān)技術(shù)概述

        1.1? Spring Boot框架

        Spring Boot是一個(gè)Java EE一站式開發(fā)框架,可以簡單、快速、零配置的創(chuàng)建基于Spring的項(xiàng)目[5]。Spring Boot提供了大量配置包,能夠自動(dòng)識(shí)別查找依賴管理中提供的jar包并進(jìn)行配置。同時(shí)內(nèi)置了Servlet容器,服務(wù)器上無須安裝額外的軟件,只要具備Java Runtime環(huán)境即可運(yùn)行。還內(nèi)置了健康檢查、度量指標(biāo),可方便接入既有運(yùn)維監(jiān)控系統(tǒng),也可使用自身提供的Spring Boot Admin服務(wù)監(jiān)控。

        1.2? Spring Cloud框架

        Spring Cloud是一款基于Java語言、采用Spring Boot開發(fā)的微服務(wù)框架。它提供了服務(wù)治理、分布式配置、分布式任務(wù)、服務(wù)跟蹤、消息總線、服務(wù)負(fù)載均衡、服務(wù)熔斷降級(jí)等一系列問題的解決方案[6]。其中包括的核心組件有:(1)Spring Cloud Consul Config是一個(gè)分布式配置中心,為注冊(cè)在同一Consul集群下的微服務(wù)下發(fā)配置。(2)Spring Cloud Consul Discovery將微服務(wù)注冊(cè)到Consul中。(3)Spring Cloud OpenFeign聲明式RestClient,通過接口方式調(diào)用其他微服務(wù),封裝了RestTemplate和負(fù)載均衡。(4)Spring Cloud LoadBalancer為微服務(wù)調(diào)用提供負(fù)載均衡。(5)Spring Cloud Hystrix斷路器避免將單個(gè)服務(wù)的故障擴(kuò)散到整個(gè)服務(wù)集群中。(6)Spring Data用于簡化Spring應(yīng)用對(duì)數(shù)據(jù)的訪問,包括關(guān)系型數(shù)據(jù)庫、非關(guān)系數(shù)據(jù)庫、Map-Reduce 框架和云數(shù)據(jù)服務(wù)等。

        1.3? Mycat數(shù)據(jù)庫中間件

        Mycat是一個(gè)開源的、面對(duì)大中型應(yīng)用的數(shù)據(jù)庫中間件[7]。使用Mycat的分庫分表技術(shù),可將大量記錄分散到不同的MySQL數(shù)據(jù)庫儲(chǔ)存。Mycat負(fù)責(zé)維護(hù)具體的表信息。還可以通過讀寫分離技術(shù)來分散讀寫請(qǐng)求,在高并發(fā)場景下降低單一MySQL服務(wù)器的訪問壓力。

        1.4? OpenResty網(wǎng)關(guān)負(fù)載均衡

        OpenResty是一款基于Nginx與Lua的高性能Web平臺(tái),其內(nèi)部集成了大量優(yōu)秀的Lua庫、第三方模塊以及其依賴項(xiàng),用于方便地搭建能夠處理高并發(fā)、高擴(kuò)展性的動(dòng)態(tài)Web應(yīng)用、Web服務(wù)和動(dòng)態(tài)網(wǎng)關(guān)[8]。當(dāng)擴(kuò)展微服務(wù)時(shí),Nginx的配置文件并不能同步的發(fā)生變化[9],需要借助OpenResty中不同流程的指令加上Lua語言來實(shí)現(xiàn)動(dòng)態(tài)配置,通過非阻塞的API來完成無感知的負(fù)載配置變更。

        2? ?教學(xué)評(píng)價(jià)系統(tǒng)架構(gòu)與服務(wù)

        2.1? 系統(tǒng)架構(gòu)

        教學(xué)評(píng)價(jià)系統(tǒng)的架構(gòu)如圖1所示,其中包括15個(gè)業(yè)務(wù)微服務(wù)、網(wǎng)關(guān)微服務(wù)、網(wǎng)關(guān)負(fù)載均衡、服務(wù)監(jiān)控、服務(wù)治理中心、Mycat數(shù)據(jù)庫中間件。其中15個(gè)業(yè)務(wù)微服務(wù)、服務(wù)監(jiān)控和網(wǎng)關(guān)微服務(wù)都需要注冊(cè)到Consul中。Consul和服務(wù)監(jiān)控都會(huì)對(duì)微服務(wù)進(jìn)行健康檢查,將不可用的服務(wù)實(shí)例逐出實(shí)例列表。服務(wù)監(jiān)控檢查到服務(wù)狀態(tài)發(fā)生變化會(huì)在監(jiān)控頁面發(fā)出通知、并向預(yù)設(shè)的通知方式中發(fā)送模板信息。

        2.2? 服務(wù)劃分

        整個(gè)教師教學(xué)評(píng)價(jià)系統(tǒng)按功能模塊進(jìn)行服務(wù)劃分,各服務(wù)的名稱和含義如表1所示。

        3? 微服務(wù)在教學(xué)評(píng)價(jià)系統(tǒng)中的實(shí)現(xiàn)

        3.1? Maven工程

        系統(tǒng)所有模塊均由Maven進(jìn)行管理。創(chuàng)建一個(gè)Maven工程打包類型設(shè)為POM,作為所有模塊的父工程。該工程用來約束全部微服務(wù)的Spring Boot版本、Spring Cloud版本。首先在該工程中引入Spring Boot的父工程作為Jar包依賴版本約束,然后再引入Spring Cloud依賴管理,最后再引入各個(gè)服務(wù)所需的依賴。

        3.2? 管理服務(wù)

        管理服務(wù)是邏輯上劃分的一組服務(wù),主要負(fù)責(zé)維護(hù)整個(gè)系統(tǒng)的基礎(chǔ)數(shù)據(jù)。該服務(wù)連接Mycat數(shù)據(jù)庫中間件,為管理服務(wù)、身份認(rèn)證服務(wù)、評(píng)價(jià)服務(wù)提供服務(wù)。以上服務(wù)在對(duì)數(shù)據(jù)修改后傳遞到這個(gè)服務(wù)保存數(shù)據(jù)。教師服務(wù)、數(shù)據(jù)字典服務(wù)、評(píng)價(jià)規(guī)則服務(wù)、指標(biāo)服務(wù)、學(xué)生服務(wù)、課程服務(wù)、學(xué)年服務(wù)。這些服務(wù)的工程結(jié)構(gòu)是相似的,采用經(jīng)典的三層架構(gòu)來實(shí)現(xiàn):利用Spring MVC實(shí)現(xiàn)控制層,利用Spring實(shí)現(xiàn)業(yè)務(wù)層,利用MyBatis實(shí)現(xiàn)持久層,利用Spring實(shí)現(xiàn)3層的整合。

        3.3? 服務(wù)治理

        Consul提供服務(wù)發(fā)現(xiàn)與配置,每個(gè)服務(wù)里都配置了Consul的地址。微服務(wù)啟動(dòng)后會(huì)自動(dòng)向Consul注冊(cè),提供自己的服務(wù)名、IP地址、端口號(hào)、上下文路徑、健康檢查地址等信息。啟動(dòng)Consul后,可通過8500端口查看UI界面,服務(wù)健康監(jiān)控如圖2所示。

        3.4? API網(wǎng)關(guān)

        Spring Cloud Gateway是高性能網(wǎng)關(guān),它提供了微服務(wù)請(qǐng)求統(tǒng)一入口。該微服務(wù)可以將指定URL或者匹配到URL的請(qǐng)求轉(zhuǎn)發(fā)到指定的微服務(wù)中去,同時(shí)當(dāng)轉(zhuǎn)發(fā)的微服務(wù)有多個(gè)實(shí)例時(shí),自動(dòng)對(duì)這些實(shí)例使用負(fù)載均衡算法轉(zhuǎn)發(fā)請(qǐng)求。指定的URL規(guī)則配置在bootstrap.yml文件中,如圖3所示。Routs表示路由的配置列表開始,id代表這條路由的名字,uri屬性配置轉(zhuǎn)發(fā)地址,可以使用服務(wù)名代替,lb://代表自動(dòng)使用負(fù)載均衡。predicates代表轉(zhuǎn)發(fā)規(guī)則,配置為指定的路徑。filters屬性代表過濾器,此處配置為熔斷。當(dāng)轉(zhuǎn)發(fā)的微服務(wù)不可用時(shí),轉(zhuǎn)發(fā)到熔斷地址fallback,相關(guān)代碼如圖3所示。

        3.5? OpenResty網(wǎng)關(guān)負(fù)載均衡

        通過OpenResty內(nèi)置的lua語言、lua-resty-redis、lua-cJSON和lua-resty-balancer模塊,結(jié)合Redis來動(dòng)態(tài)配置網(wǎng)關(guān)。首先在init_by_lua_file中指定運(yùn)行腳本init.lua,在init.lua中初始化cJSON、balancer模塊作為全局變量。同時(shí)初始全局變量請(qǐng)求計(jì)數(shù)器vtimes為-1,當(dāng)前服務(wù)列表下標(biāo)currentserver為1。默認(rèn)的網(wǎng)關(guān)地址serverlist初始為config.lua中配置的默認(rèn)網(wǎng)關(guān)地址。在access_by_lua_file中指定運(yùn)行腳本access.lua,在access.lua中判斷請(qǐng)求計(jì)數(shù)器vtimes是否小于0,如果為真就重新賦值請(qǐng)求計(jì)數(shù)器并從Redis中獲取數(shù)據(jù)。成功獲得到數(shù)據(jù)就更新當(dāng)前服務(wù)器列表。vtimes初始化為-1就要求在第一次請(qǐng)求時(shí)刷新配置。在balancer_by_lua_file中指定運(yùn)行腳本balancer.lua,在balancer.lua首先判斷當(dāng)前serverList的大小,當(dāng)列表大小等于1時(shí)表示只有一個(gè)網(wǎng)關(guān),這時(shí)候就無須再進(jìn)行負(fù)載均衡直接轉(zhuǎn)發(fā)便可以。大于1時(shí),采用輪詢算法將每個(gè)請(qǐng)求分別轉(zhuǎn)發(fā)到不同的網(wǎng)關(guān)上。

        3.6? 服務(wù)調(diào)用

        本系統(tǒng)微服務(wù)之間使用HTTP+JSON來實(shí)現(xiàn)通信。HTTP是通信的協(xié)議,JSON是通信時(shí)的數(shù)據(jù)格式[10],使用OpenFeign來隱藏遠(yuǎn)程調(diào)用的實(shí)現(xiàn)細(xì)節(jié)。首先在需要調(diào)用微服務(wù)的pom.xml中增加OpenFeign依賴,然后創(chuàng)建一個(gè)接口,添加@FeignClient注解。其中value的值是要調(diào)用的服務(wù)名,path是調(diào)用服務(wù)的上下文路徑,fallback是調(diào)用失敗時(shí)調(diào)用該接口的實(shí)現(xiàn)類。在調(diào)用時(shí)直接將注入到調(diào)用對(duì)象中,調(diào)用findAllDepartments()方法即可。

        3.7? 服務(wù)熔斷

        本系統(tǒng)的服務(wù)熔斷主要應(yīng)用在網(wǎng)關(guān)轉(zhuǎn)發(fā)和微服務(wù)間調(diào)用上,在這兩點(diǎn)上添加熔斷可以確保系統(tǒng)的穩(wěn)定運(yùn)行。網(wǎng)關(guān)的熔斷配置在過濾器上的fallbackuri,當(dāng)網(wǎng)關(guān)轉(zhuǎn)發(fā)時(shí)發(fā)現(xiàn)此服務(wù)無實(shí)例可用或者應(yīng)答超時(shí),將直接轉(zhuǎn)發(fā)到fallbackuri配置的地址上。因?yàn)槲⒎?wù)間調(diào)用使用了OpenFeign,其內(nèi)部已經(jīng)封裝熔斷。在Feign接口上配置fallback選項(xiàng)為接口指定一個(gè)實(shí)現(xiàn)類,在調(diào)用失敗后會(huì)使用這個(gè)類的方法作為此接口的默認(rèn)實(shí)現(xiàn)方法。

        3.8? 公共模塊

        公共模塊封裝了15個(gè)業(yè)務(wù)微服務(wù)的實(shí)體類、響應(yīng)請(qǐng)求的包裝類、身份認(rèn)證工具類,每個(gè)微服務(wù)都可以從該模塊中調(diào)用自己需要的類。不同的微服務(wù)之間會(huì)通過調(diào)用其他的微服務(wù)來獲取對(duì)象。定義CommonResponse類負(fù)責(zé)系統(tǒng)多數(shù)對(duì)外響應(yīng),需要考慮普適性、可重用性。該類提供了5種響應(yīng)狀態(tài):代碼code、操作結(jié)果消息message、實(shí)例數(shù)據(jù)對(duì)象data、實(shí)例數(shù)據(jù)對(duì)象集合table和請(qǐng)求號(hào)requestId。包含的方法包括:ok()/ok(String message)、error()/error(String message)、auth(String message)、bad()、busy()、data(Model data)和table(List table)。

        3.9? 身份認(rèn)證服務(wù)

        認(rèn)證服務(wù)涉及賬戶的登錄、注銷、維護(hù)登錄用戶信息、每個(gè)角色能訪問的指標(biāo)、修改密碼、系統(tǒng)訪問憑證下發(fā)等功能。所有的用戶在訪問任何服務(wù)時(shí)都必須在請(qǐng)求中攜帶身份認(rèn)證服務(wù)下發(fā)的訪問憑證。用戶的登錄、注銷、獲取的用戶信息等都需要將請(qǐng)求路由給該服務(wù)完成。由于HTTP是無狀態(tài)協(xié)議,本系統(tǒng)采用前后端分離技術(shù)開發(fā),不能像傳統(tǒng)的應(yīng)用一樣在瀏覽器端設(shè)置一個(gè)Cookie來維護(hù)會(huì)話信息。通過使用訪問憑證的方式,后端不需要維護(hù)會(huì)話只需要憑證,前端也只需要保存憑證。前端將訪問憑證保存在瀏覽器里,在請(qǐng)求后端時(shí)帶了此憑證完成身份校驗(yàn)。所有的服務(wù)在操作時(shí)都必定會(huì)先驗(yàn)證用戶賬戶的合法性,都會(huì)請(qǐng)求身份認(rèn)證服務(wù)檢查憑證。每次請(qǐng)求都驗(yàn)證會(huì)大大降低性能,在請(qǐng)求量大時(shí)會(huì)可能直接導(dǎo)致身份認(rèn)證服務(wù)宕機(jī)。因?yàn)橥獠克械恼?qǐng)求都會(huì)通過網(wǎng)關(guān),所以在Spring Cloud Gateway上做請(qǐng)求的憑證檢查。統(tǒng)一放行無憑證但正在請(qǐng)求身份認(rèn)證的請(qǐng)求,攔截到其他服務(wù)的請(qǐng)求并檢查憑證。憑證有效放行請(qǐng)求,憑證無效不放行并返回憑證無效信息。

        身份認(rèn)證服務(wù)依賴于管理服務(wù)中的學(xué)生服務(wù)和教師服務(wù),身份認(rèn)證服務(wù)只維護(hù)被發(fā)送過訪問憑證的用戶信息,并不維護(hù)數(shù)據(jù)庫中的用戶信息。身份認(rèn)證服務(wù)將接收的賬戶密碼根據(jù)請(qǐng)求的接口轉(zhuǎn)發(fā)到學(xué)生服務(wù)或者是教師服務(wù)。學(xué)生服務(wù)或教師服務(wù)在收到賬戶和密碼后會(huì)在數(shù)據(jù)庫中查詢比對(duì)用戶信息。查詢成功后返回給身份認(rèn)證服務(wù)用戶信息,認(rèn)證服務(wù)將根據(jù)用戶信息簽發(fā)憑證,同時(shí)將用戶信息緩存到Redis中,設(shè)置過期時(shí)間為1小時(shí)。用戶注銷時(shí)刪除Redis中緩存的用戶信息。

        系統(tǒng)的憑證基于JSON Web Tokens(JWT)[11]設(shè)計(jì),JWT非常適合無狀態(tài)的HTTP協(xié)議。當(dāng)用戶登錄成功后將獲得的用戶信息中的學(xué)工號(hào)加入JWT的sub字段、角色I(xiàn)D加入JWT的role字端、過期時(shí)間為當(dāng)前系統(tǒng)時(shí)間加一個(gè)小時(shí),返回給用戶。用戶的下次請(qǐng)求會(huì)在HTTP頭部的Authorization字段添加下發(fā)的憑證,網(wǎng)關(guān)會(huì)負(fù)責(zé)檢查憑證。

        3.10? 評(píng)價(jià)服務(wù)

        評(píng)價(jià)服務(wù)分為學(xué)生評(píng)價(jià)服務(wù)和教學(xué)督導(dǎo)評(píng)價(jià)服務(wù),包含的功能如圖4所示。之所以拆分為兩個(gè),是因?yàn)樵趯?shí)際業(yè)務(wù)中學(xué)生的人數(shù)遠(yuǎn)遠(yuǎn)大于教學(xué)督導(dǎo)的人數(shù)。那么學(xué)生評(píng)價(jià)服務(wù)接受的請(qǐng)求量也遠(yuǎn)遠(yuǎn)大于教學(xué)督導(dǎo)評(píng)價(jià)服務(wù)所接受的請(qǐng)求量,將兩個(gè)服務(wù)分離能更有效地在請(qǐng)求量增大時(shí)進(jìn)行動(dòng)態(tài)擴(kuò)容處理。

        4? 結(jié)? 論

        Spring Cloud框架提供了微服務(wù)架構(gòu)應(yīng)用的“一站式”解決方案,簡化了微服務(wù)架構(gòu)在應(yīng)用系統(tǒng)的使用過程。首先介紹了Spring Cloud框架及其包括的核心組件,然后結(jié)合教學(xué)評(píng)價(jià)系統(tǒng)闡述了Spring Cloud框架的具體使用過程,重點(diǎn)描述了服務(wù)治理、API網(wǎng)關(guān)、負(fù)載均衡、服務(wù)調(diào)用、服務(wù)熔斷、業(yè)務(wù)服務(wù)等模塊的實(shí)現(xiàn)過程。為Spring Cloud框架的使用提供了一定的借鑒。

        參考文獻(xiàn):

        [1] 倪小璐,王旭英,邊俊凱,等.微服務(wù)軟件架構(gòu)設(shè)計(jì)模式及其應(yīng)用 [J].杭州師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,20(4):442-448.

        [2] 馮志勇,徐硯偉,薛霄,等.微服務(wù)技術(shù)發(fā)展的現(xiàn)狀與展望 [J].計(jì)算機(jī)研究與發(fā)展,2020,57(5):1103-1122.

        [3] SUN X,CHEN H N,WANG Q Y,et al. Research and Design of Online Training Platform based on Spring Cloud Distributed System Structure and Computer Big Data [J/OL].Journal of Physics:Conference Series,2021,1952:1-7.[2021-09-03].https://iopscience.iop.org/article/10.1088/1742-6596/1952/4/042087.

        [4] 王偉,常慶麗,吳朝霞.基于Springboot+Vue的精準(zhǔn)幫扶系統(tǒng)研究與實(shí)現(xiàn) [J].河南科技,2021,40(27):12-14.

        [5] 朱瑞,曾勁濤,龍滿生.基于SSM框架的創(chuàng)業(yè)資訊發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].井岡山大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,42(1):54-60.

        [6] 歐陽宏基,楊鐸.基于微服務(wù)架構(gòu)的學(xué)位論文寫作輔助平臺(tái) [J].計(jì)算機(jī)與現(xiàn)代化,2019(10):34-39.

        [7] 張瑩,鄭學(xué)智.基于Mycat的大數(shù)據(jù)存儲(chǔ)研究 [J].電子設(shè)計(jì)工程,2020,28(5):1-6.

        [8] 溫馨,樊婧雯,王富強(qiáng).基于OpenResty平臺(tái)的API網(wǎng)關(guān)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].信息化研究,2020,46(3):62-68.

        [9] 許諾.大數(shù)據(jù)下基于Nginx負(fù)載均衡的教務(wù)系統(tǒng)優(yōu)化設(shè)計(jì) [J].信息技術(shù)與信息化,2021(6):191-193.

        [10] 劉家雨,王永生,劉愛東.基于JSON的防空武器系統(tǒng)應(yīng)用適配器 [J].兵工自動(dòng)化,2021,40(7):1-4.

        [11] SPIGA D,PRA S D,SALOMONI D,et al. Dynamic integration of distributed,Cloud-based HPC and HTC resources using JSON Web Tokens and the INDIGO IAM Service [J].EPJ Web of Conferences,2020,245:1-9.[2021-09-03].https://doi.org/10.1051/epjconf/202024507020.

        作者簡介:葛萌(1980—),女,漢族,陜西咸陽人,講師,碩士,研究方向:軟件工程、企業(yè)級(jí)JavaEE應(yīng)用開發(fā);李闖男(1999—),男,漢族,陜西咸陽人,本科在讀,研究方向:軟件工程;歐陽宏基(1982—),男,漢族,陜西寶雞人,副教授,碩士,研究方向:軟件工程、軟件設(shè)計(jì)與體系結(jié)構(gòu)。

        亚洲国产另类久久久精品小说| 国产高清成人午夜视频| 久久久国产精品123| 日本爽快片100色毛片| 伊人久久久精品区aaa片| 好男人视频在线视频| 欧美亚洲尤物久久综合精品| 午夜精品人妻中字字幕| 一区二区三区四区在线观看日本| 欧美顶级少妇作爱| 精品国产一区二区三区香蕉| 国产午夜精品一区二区三区视频| 国产在线白浆一区二区三区在线| 久久精品亚洲热综合一本色婷婷| 高级会所技师自拍视频在线| 一进一出一爽又粗又大| 免费无码成人av在线播放不卡| 日韩无码尤物视频| 免费观看一区二区三区视频| 不卡的av网站在线观看| 亚洲精品天堂成人片av在线播放| 特级毛片a级毛片在线播放www| 国产99精品精品久久免费| 国产av精选一区二区| 狠狠色狠狠色综合网| 国产精品9999久久久久| 超碰cao已满18进入离开官网 | 亚洲成a∨人片在线观看无码| av免费一区在线播放| 国产精品国产三级国产不卡| 成人国产精品一区二区八戒网| 亚洲va无码va在线va天堂| 国内精品久久久久久久久齐齐| 久草久热这里只有精品| 国产一区二区三区啊啊| 国产美女精品视频线免费播放软件| 欧美激情a∨在线视频播放| 欧美在线观看www| 侵犯了美丽丰满人妻中文字幕| 在线观看特色大片免费视频| 亚洲国产av导航第一福利网|