版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
頁(yè)第1章緒論 1.1研究背景及意義隨著網(wǎng)絡(luò)的普及,我們也可以考慮答疑方式不應(yīng)該局限于線下的方式,線下模式受到時(shí)間和空間的限制,線上答疑平臺(tái)是現(xiàn)代及時(shí),高效獲取解答,鞏固所學(xué)知識(shí)的重要途徑,相比于傳統(tǒng)的答疑方式,借助于線上答疑平臺(tái)可以實(shí)現(xiàn)時(shí)間和空間的突破,目前的線上答疑平臺(tái)大多數(shù)是作為某個(gè)系統(tǒng)的子系統(tǒng)而存在,服務(wù)于某專業(yè)的問答,加上線下答疑模式存在的不足,或者說有專門的線上答疑平臺(tái),但是多數(shù)是單體架構(gòu),不便于維護(hù),基于微服務(wù)架構(gòu)的線上答疑平臺(tái)的建立,能讓學(xué)生更高效的答疑,讓教育有更好的發(fā)展,建設(shè)高性能的,高并發(fā)的線上答疑平臺(tái)對(duì)于實(shí)施科教興國(guó)具有重大意義。1.2國(guó)內(nèi)外相關(guān)研究狀況基于微服務(wù)架構(gòu)的線上答疑平臺(tái)讓校園答疑突行為方式不在被局限與線下模式,答疑平臺(tái)依靠熱點(diǎn)可以讓學(xué)生了解到最近的關(guān)注點(diǎn),答疑平臺(tái)通過高效的搜索來滿足學(xué)生對(duì)問答的獲取,現(xiàn)從系統(tǒng)的獨(dú)立性、系統(tǒng)的資源庫(kù)等兩個(gè)方面對(duì)國(guó)內(nèi)外網(wǎng)上答疑系統(tǒng)的發(fā)展現(xiàn)狀進(jìn)行介紹[1]。系統(tǒng)的獨(dú)立性:我們國(guó)內(nèi)有關(guān)于線上答疑平臺(tái)的實(shí)現(xiàn)比較少,大多數(shù)都是在特定領(lǐng)域的,或者不夠成熟,架構(gòu)簡(jiǎn)單,難以維護(hù)。國(guó)外優(yōu)秀的線上答疑平臺(tái)都是獨(dú)立運(yùn)行的系統(tǒng),甚至不用去維護(hù),有著完善,健壯的的系統(tǒng)。系統(tǒng)的資源庫(kù):國(guó)內(nèi)的線上答疑平臺(tái)多數(shù)不夠完善,資源也都是靠學(xué)生們大量的問答來進(jìn)行積累,即便是有,那也多數(shù)是少量分類的部分內(nèi)容,不夠系統(tǒng),沒有形成完整的體系。國(guó)外的線上答疑平臺(tái)資源庫(kù)內(nèi)容豐富,類型也很豐富,涵蓋知識(shí)庫(kù)還有信息庫(kù),學(xué)生能夠高效的相互答疑,相比于線上答疑系統(tǒng),以往的答疑方式通常是借助電子郵件、留言板、聊天室等信息通訊工具來完成,這些工具并非為教育“量身定做”從而與答疑需求存在偏差,難以解決實(shí)際問題。因此,如果能夠有一個(gè)免費(fèi)的公共的網(wǎng)絡(luò)答疑平臺(tái),教師和學(xué)生經(jīng)過簡(jiǎn)單的設(shè)置后,就能開展網(wǎng)上答疑活動(dòng),對(duì)學(xué)?;蚪處焷碚f既經(jīng)濟(jì)又方便實(shí)用[2]。線上答疑系統(tǒng)平臺(tái)的建立,是實(shí)施網(wǎng)上教育的技術(shù)基礎(chǔ),線上答疑平臺(tái)的普及,使網(wǎng)上教育得到了更好的發(fā)展。只有結(jié)合我國(guó)的教育現(xiàn)狀,在現(xiàn)有的信息化建設(shè)基礎(chǔ)上,利用高新科學(xué)技術(shù),建立起具有互動(dòng)性強(qiáng)、教學(xué)資源共享、師生共同交流的平臺(tái),才能夠在現(xiàn)有資源的基礎(chǔ)上更好的完善教育體系,開展和實(shí)施網(wǎng)上教育[3]。網(wǎng)上答疑平臺(tái)的性能和功能直接決定了網(wǎng)上教育的教學(xué)質(zhì)量、教學(xué)手段、學(xué)習(xí)效果、教學(xué)資源建設(shè)等。所以說,建設(shè)高性能的、功能強(qiáng)大的、實(shí)用性強(qiáng)的老師與學(xué)生共同交流平臺(tái)對(duì)實(shí)施“科教興國(guó)”具有重大的意義[4]。1.3本課題研究的意義和主要內(nèi)容1.3.1研究的意義近年來,對(duì)于校園信息化建設(shè)而言,資訊獲取和答疑的需求貫穿學(xué)生的學(xué)習(xí)和生活,研究利用大數(shù)據(jù)技術(shù)和微服務(wù)架構(gòu)建設(shè)答疑平臺(tái),使平臺(tái)具備良好并發(fā)能力,高可靠、高可用,對(duì)實(shí)現(xiàn)學(xué)校簡(jiǎn)化管理、提升服務(wù)水平、提高人才培養(yǎng)質(zhì)量具有實(shí)際價(jià)值和意義。1.3.2研究的主要內(nèi)容①本課題開發(fā)一套基于微服務(wù)架構(gòu)的線上答疑平臺(tái),實(shí)現(xiàn)大學(xué)生的學(xué)習(xí)和生活中準(zhǔn)確的資訊獲取和答疑反饋。②利用大數(shù)據(jù)技術(shù)實(shí)現(xiàn)熱點(diǎn)推薦,內(nèi)容推送。③基于大數(shù)據(jù)技術(shù)和微服務(wù)架構(gòu)的線上校園答疑平臺(tái)方便快捷,功能豐富,主要具備發(fā)帖回帖、熱門推薦及個(gè)性化推送、私信、搜索、敏感詞過濾等功能。1.3.3網(wǎng)上答疑系統(tǒng)存在的問題及原因分析世界各國(guó)都在積極研究和開發(fā)基于Internet和WWW的網(wǎng)絡(luò)教育應(yīng)用系統(tǒng),由于教學(xué)網(wǎng)站比普通網(wǎng)站起步晚得多,大多數(shù)的線上答疑平臺(tái)都是參照著其他網(wǎng)站的建設(shè),甚至有的直接套用其他的網(wǎng)站界面邏輯來構(gòu)建線上答疑平臺(tái),這就導(dǎo)致了線上答疑平臺(tái)并非為教育量身定做,功能上也會(huì)或多或少有偏差,不能達(dá)到用戶的需求[5]。就現(xiàn)有的線上答疑平臺(tái)的不足提出一些我的看法。形式單一:實(shí)際上,教學(xué)問答的內(nèi)容很多。學(xué)生不僅可以問一段文字的問題,還可以問幾何題、圖片、音樂和電影的問題。換句話說,現(xiàn)實(shí)中涉及到的問題復(fù)雜,多樣,現(xiàn)目前,很大部分由E-email,bbs等構(gòu)成的網(wǎng)上問答平臺(tái),內(nèi)容被限制在文字型,表現(xiàn)形式不夠豐富。我們需要一款功能更為完善的線上答疑系統(tǒng)。操作繁瑣:一方面教師發(fā)電子郵件給學(xué)生很不方便。另一方面,教師不方便直接批準(zhǔn)或公開展示地圖和附件。我們知道,使用軟件的難度直接決定了用戶使用軟件的熱情。因此,沒有多少老師和學(xué)生有耐心用這種方式回答問題。靈活性差:有些線上答疑平臺(tái)是基于c/s,需要用戶下載客戶端,這樣的方式安全性,靈活性,兼容性都不太友好,就比如客戶端開始設(shè)計(jì)時(shí)不可能所有機(jī)型都去測(cè)試,難免會(huì)產(chǎn)生兼容性問題,也不方便維護(hù)于升級(jí),無法保證用戶安裝的客戶端版本統(tǒng)一。架構(gòu)簡(jiǎn)單:以往的線上答疑平臺(tái)大多數(shù)都是單體架構(gòu),不便于維護(hù),當(dāng)有一些必要的需求需要對(duì)系統(tǒng)進(jìn)行改造時(shí)會(huì)非常的困難,因?yàn)閱误w架構(gòu)的系統(tǒng)時(shí)高度耦合的,我們需要一種解耦的架構(gòu)去適應(yīng)不斷變化的需求。1.4研究方法文獻(xiàn)研究法:通過調(diào)查文獻(xiàn)來獲得資料,從而全面地、正確地了解掌握所要研究問題的一種方法。文獻(xiàn)研究法被子廣泛用于各種學(xué)科研究中。問卷調(diào)查法:一方面,對(duì)相關(guān)就業(yè)管理的企業(yè)人員進(jìn)行問卷調(diào)查,了解企業(yè)的需求與想法。另一方面,對(duì)畢業(yè)生進(jìn)行問卷調(diào)查,了解學(xué)生的需求和想法。再一方面,了解學(xué)校的管理學(xué)生的理念,進(jìn)行科學(xué)的設(shè)計(jì)。1.5本文組織結(jié)構(gòu)論文共分為七章,各章的主要內(nèi)容如下:第一章:緒論。提出論文選題背景及意義、國(guó)內(nèi)外研究現(xiàn)狀分析、本文主要內(nèi)容和組織結(jié)構(gòu)。第二章:相關(guān)技術(shù)實(shí)現(xiàn)及其理論分析。主要時(shí)對(duì)技術(shù)選型,用到的技術(shù)做出介紹,與選擇的原因。第三章:系統(tǒng)需求分析。描述系統(tǒng)的需求與功能點(diǎn),及其實(shí)現(xiàn)的分析。第四章:系統(tǒng)設(shè)計(jì)。主要是描述數(shù)據(jù)庫(kù)的建表以及功能劃分。第五章:系統(tǒng)實(shí)現(xiàn)。分為數(shù)據(jù)庫(kù)實(shí)現(xiàn),前臺(tái)實(shí)現(xiàn),以及后臺(tái)實(shí)現(xiàn)。第六章:系統(tǒng)測(cè)試。系統(tǒng)測(cè)試的定義,測(cè)試環(huán)境,測(cè)試方案設(shè)計(jì),測(cè)試用例構(gòu)建,功能測(cè)試,測(cè)試分析。第七章:總結(jié)與展望??偨Y(jié)本次論文,系統(tǒng)實(shí)現(xiàn)展望未來發(fā)展方向。第2章相關(guān)技術(shù)2.1系統(tǒng)開發(fā)環(huán)境操作系統(tǒng):Windows10數(shù)據(jù)庫(kù):MySQLServer8.0WEB服務(wù)器:ApacheTomcat8.0開發(fā)工具:IntelliJIDEA2021.2瀏覽器:IE9.0以上版本(推薦使用IE10.0版本)、MozillaFirefox2.2系統(tǒng)開發(fā)語(yǔ)言及其介紹Java它是由近年來發(fā)展迅速的SunMicrosystems公司在1995年5月的時(shí)候推出的Java程序設(shè)計(jì)語(yǔ)言(以下簡(jiǎn)稱Java語(yǔ)言)和Java平臺(tái)的總稱。用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Javaapplet)顯示了Java的魅力:它的跨平臺(tái)性、以及其動(dòng)態(tài)的Web、Internet計(jì)算等等,讓熱門的Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Javaapplet。另一方面,Java技術(shù)也不斷更新REF_Ref23475\r\h[6]。Java平臺(tái)是由Java虛擬機(jī)(JavaVirtualMachine)和Java應(yīng)用編程接口(ApplicationProgrammingInterface、簡(jiǎn)稱API)構(gòu)成。Java應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行?,F(xiàn)在Java平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。Java應(yīng)用編程接口己經(jīng)從1.1x版發(fā)展到1.2版。是目前常用的Java平臺(tái)[7]?;贘ava8,最近版本為Javal7。Java分為3個(gè)體系JavaSE(Java2PlatformStandardEdition),JavaEE(Java2Platform,EnterpriseEdition),JavaME(Java2PlatformMicroEdition)。Java是一種簡(jiǎn)單的,可移植的,多線程的動(dòng)態(tài)語(yǔ)言,面向?qū)ο蟮模Y(jié)構(gòu)中立的,解釋型的,健壯安全的,可移植的,性能優(yōu)異、分布式的[8]。Java語(yǔ)言的優(yōu)良特性使得Java應(yīng)用具有無比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時(shí)間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(JavaEnterpriseAPIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫(kù)[9]。2.3數(shù)據(jù)庫(kù)簡(jiǎn)介數(shù)據(jù)庫(kù)是整個(gè)網(wǎng)上答疑系統(tǒng)的核心,根據(jù)需要可選用:SQLServer,SYSBASE或ORACLE,對(duì)于整個(gè)系統(tǒng)的安全管理有重要的意義。但做這個(gè)系統(tǒng)只要用到小型數(shù)據(jù)庫(kù)即可,所以這里選擇MySQL。MySQL在市場(chǎng)中使用占比也比較大,也意味著它的生態(tài)比較好,但與大型的數(shù)據(jù)庫(kù)進(jìn)行比較還是有許多的差距,比如大數(shù)據(jù)量的查詢不如Oracle,但我們搜索主要是基于elasticsearch,下面總結(jié)一下選擇MySQL的原因:在學(xué)校主要對(duì)MySQL進(jìn)行過系統(tǒng)的學(xué)習(xí),對(duì)MySQL的了解要更多一些。相比與其他數(shù)據(jù)庫(kù)MySQL體積相對(duì)更適中,功能也基本的滿足項(xiàng)目的需求。市場(chǎng)占比大,遇到問題大概率能通過吸取前人的經(jīng)驗(yàn)教訓(xùn)來快速解決問題。2.4Redis介紹總的來說這是一款高效IO的基于內(nèi)存的數(shù)據(jù)庫(kù),如果對(duì)于經(jīng)常性的讀取的一些數(shù)據(jù),我們可以在上線前先將數(shù)據(jù)從數(shù)據(jù)庫(kù)加載到redis中,加快查詢效率,降低數(shù)據(jù)庫(kù)訪問的壓力。一般用于存放熱點(diǎn)數(shù)據(jù),訪問量,點(diǎn)擊量等,以及進(jìn)行熱點(diǎn)推薦。2.5Elasticsearch介紹相較于前面的個(gè),Elasticsearch基礎(chǔ)學(xué)習(xí)的周期要少一些,會(huì)使用倒是不難,但概念很重要,有助于我們更深入的理解,下面對(duì)一些必要的概念于工作原理進(jìn)行簡(jiǎn)單的介紹。Ik分詞器:因?yàn)閑lasticsearch是由國(guó)外的人設(shè)計(jì)出來的,對(duì)中文分詞并不友好,所以我們需要在開發(fā)時(shí)引入一款支持中文分詞的插件,這里選擇ik分詞器,比如輸入“我愛編程”會(huì)被分詞成“我”,“愛”,“編程”,然后參與搜索。Elasticsearch索引:Elasticsearch
索引指相互關(guān)聯(lián)的文檔集合。Elasticsearch會(huì)以JSON文檔的形式存儲(chǔ)數(shù)據(jù)。每個(gè)文檔都會(huì)在一組鍵(字段或?qū)傩缘拿Q)和它們對(duì)應(yīng)的值(字符串、數(shù)字、布爾值、日期、數(shù)值組、地理位置或其他類型的數(shù)據(jù))之間建立聯(lián)系。Elasticsearch使用的是一種名為倒排索引的數(shù)據(jù)結(jié)構(gòu),這一結(jié)構(gòu)的設(shè)計(jì)可以十分快速地進(jìn)行全文本搜索。我們輸入會(huì)在分詞后在文檔中進(jìn)行搜索,并智能的根據(jù)相關(guān)性進(jìn)行排序。最后選擇elasticsearch的原因如下。Elasticsearch搜索速度很快,.Elasticsearch建立在Lucene的基礎(chǔ)上,因此它在全文搜索中表現(xiàn)良好。它先是對(duì)搜索內(nèi)容進(jìn)行分詞再去文檔庫(kù)匹配分詞,打破常規(guī)的正向搜索方式。在搜索速度上表現(xiàn)良好。Elasticsearch集群模式,Elasticsearch對(duì)集群模式有很好的支持,再上線部署后出項(xiàng)問題時(shí)間去應(yīng)對(duì),而不會(huì)出現(xiàn)一臺(tái)服務(wù)宕機(jī)就導(dǎo)致系統(tǒng)崩潰的情況。Elasticsearch強(qiáng)大的搜索功能,Elasticsearch在安裝了分詞插件后,不僅能對(duì)中文進(jìn)行分詞,還可以對(duì)地理范圍,時(shí)間,基本數(shù)據(jù)類型進(jìn)行范圍查詢,還有打分功能,可以實(shí)現(xiàn)自定義排序等。2.6SpringBoot簡(jiǎn)介SpringBoot的誕生可以說是為了簡(jiǎn)化配置,快速開發(fā)而生,在開發(fā)過程中,我們一般根據(jù)場(chǎng)景來導(dǎo)入開發(fā)過程中需要的依賴,但是往往會(huì)因?yàn)楦鱾€(gè)依賴的版本問題而產(chǎn)生沖突,另外我們有許多配置是有默認(rèn)值并且寫的也是默認(rèn)值,既然這樣按理說我們是否可以根據(jù)項(xiàng)目導(dǎo)入的依賴分析出要進(jìn)行的配置呢?springboot框架便為我們統(tǒng)一管理版本并進(jìn)行默認(rèn)配置,如果需要修改默認(rèn)配置我們可以在yml文件中進(jìn)行配置。選則springboot開發(fā)的原因:①開發(fā)生態(tài)好,就目前來看選擇springboot做開發(fā)的市場(chǎng)占比超過40%,如果在開發(fā)過程中遇到bug,通過常見的搜索引擎可以很容易的找到答案。②SringBoot會(huì)對(duì)版本進(jìn)行管理,相當(dāng)于前輩們已經(jīng)為你摸索出一套相互之間不會(huì)產(chǎn)生版本沖突的依賴,讓我們可以有更多的時(shí)間去關(guān)注業(yè)務(wù)邏輯。③自動(dòng)配置,springboot通過大量的條件注解可以判斷出那些需要自動(dòng)裝配,并配置默認(rèn)值,而無需在自己手寫xml。2.7ElementPlus這是ElementUI的升級(jí)版本,體驗(yàn)同樣優(yōu)秀,api更加友好,文檔同樣詳盡,很香。關(guān)于ElementPlus我之所以選擇
elementplus一是為了提高開發(fā)效率,二是這是由國(guó)內(nèi)餓了么出品的前端組件庫(kù),為vue3做適應(yīng),ElementUi誕生于2016年,起初是餓了么內(nèi)部的業(yè)務(wù)組件庫(kù),主要用于快速開發(fā)中小型產(chǎn)品。在開源后深受廣大前端開發(fā)者的喜愛,4年多的時(shí)間,Element在GitHub上已經(jīng)獲得48.3k的star,11.9k的fork,NPM下載量高達(dá)95萬(wàn)次/月。已經(jīng)成為
vue生態(tài)中最流行的UI組件庫(kù)之一REF_Ref23475\r\h[10]。ElementPlus是基于最新的Vue3.0對(duì)ElementUI的升級(jí)適配,使用TypeScript+CompositionAPI重構(gòu)的全新項(xiàng)目。官方宣稱用最適合Vue3.0的方式幾乎重寫了每一行ElementUI的代碼。ElementPlus相對(duì)于ElementUI提升使用TypeScript開發(fā),提供完整的類型定義文件使用Vue3.0CompositionAPI降低耦合,簡(jiǎn)化邏輯使用Vue3.0Teleport新特性重構(gòu)掛載類組件使用Lerna維護(hù)和管理項(xiàng)目使用更輕量更通用的時(shí)間日期解決方案Day.js升級(jí)適配popperjs,async-validator等核心依賴完善52種國(guó)際化語(yǔ)言支持優(yōu)化的組件API(適應(yīng)于vue3)更多自定義選項(xiàng),更加詳盡友好的文檔(學(xué)習(xí)成本低,能夠快速上手)這是目前Vue生態(tài)圈最火的桌面
Ui組件庫(kù),在前些年的使用率一直碾壓其他主流框架,使用Vue的開發(fā)者幾乎沒有不知道的[11]。設(shè)計(jì)方面,Element的視覺設(shè)計(jì)很符合國(guó)人的觀賞體驗(yàn),而如今ElementPlus的發(fā)布,對(duì)于開發(fā)者來說是天大的喜訊,不用學(xué)習(xí)其他UI框架增加開發(fā)成本了,如果之前有使用過舊版的Element,幾乎不需要學(xué)習(xí),使用起來還是和熟悉的Element的相差不大。ElementPlus目前版本的設(shè)計(jì)沒有重新設(shè)計(jì),全新視覺版本正在開發(fā)中,相信在未來不久的版本更新中會(huì)發(fā)布,讓使用者更快更容易借助Element優(yōu)秀的設(shè)計(jì)和體驗(yàn),構(gòu)建出優(yōu)秀的中后臺(tái)產(chǎn)品。目前Vue3.0正式版剛剛出爐,就有ElementPlus這么重磅的UI組件庫(kù)可以用,這也體現(xiàn)了Vue在市場(chǎng)上很受歡迎。完善的生態(tài),GitHub大量星標(biāo),vue3作者的推薦讓我最終選擇其做頁(yè)面開發(fā)。2.7微服務(wù)技術(shù)簡(jiǎn)介微服務(wù)架構(gòu)區(qū)別于傳統(tǒng)的單體軟件架構(gòu),是一種為了適應(yīng)當(dāng)前互聯(lián)網(wǎng)后臺(tái)服務(wù)的高并發(fā),高性能,高可用而產(chǎn)生的軟件架構(gòu)[12]。單體式應(yīng)用程序各個(gè)服務(wù)功能模塊有很強(qiáng)的耦合性,也就是相互依賴彼此,很難拆分和擴(kuò)容。單體應(yīng)用程序的優(yōu)點(diǎn):開發(fā)簡(jiǎn)潔:功能都在單個(gè)程序內(nèi)部,便于軟件設(shè)計(jì)和開發(fā)規(guī)劃。容易部署:程序單一不存在分布式集群的復(fù)雜部署環(huán)境,降低了部署難度。容易測(cè)試:沒有各種復(fù)雜的服務(wù)調(diào)用關(guān)系,都是內(nèi)部調(diào)用方便測(cè)試。單體應(yīng)用程序的缺點(diǎn):?jiǎn)误w程序的缺點(diǎn)一開始不是特別明顯,項(xiàng)目剛開始需求少,業(yè)務(wù)邏輯簡(jiǎn)單,寫代碼快,噩夢(mèng)從業(yè)務(wù)迭代更新,系統(tǒng)日益龐大開始,前期的輕松就沒有了,取而代之的是軟件維護(hù)和迭代更新的無盡痛苦。這一缺點(diǎn)也是致命的。微服務(wù)架構(gòu)介紹:微服務(wù)架構(gòu)的思想就是模塊拆分,搭集群,配置中心進(jìn)行服務(wù)發(fā)現(xiàn),全局網(wǎng)關(guān),實(shí)現(xiàn)高可用,高并發(fā),服務(wù)可以使用不同的語(yǔ)言來實(shí)現(xiàn)。相對(duì)于單體服務(wù),微服務(wù)有很多優(yōu)點(diǎn),這里列舉幾個(gè)主要的好處:技術(shù)異構(gòu)性:不同服務(wù)內(nèi)部的開發(fā)技術(shù)可以不一致,你可以用java來開發(fā)服務(wù)A,用golang來開發(fā)服務(wù)B,大家再也不用為哪種語(yǔ)言是世界上最好的語(yǔ)言而爭(zhēng)論不休。為不同的服務(wù)選擇最適合該服務(wù)的技術(shù),系統(tǒng)中不同部分也可以使用不同的存儲(chǔ)技術(shù),比如A服務(wù)可以選擇redis存儲(chǔ),B服務(wù)你可以選擇用MySQL存儲(chǔ),這都是允許的,你的服務(wù)你做主。隔離性:一個(gè)服務(wù)不可用不會(huì)導(dǎo)致另一個(gè)服務(wù)也癱瘓,單體應(yīng)用程序中某個(gè)模塊癱瘓,必將導(dǎo)致整個(gè)系統(tǒng)不可用,當(dāng)然,單體程序也可以在不同機(jī)器上部署同樣的程序來實(shí)現(xiàn)備份,不過,同樣存在上面說的資源浪費(fèi)問題??蓴U(kuò)展性龐大的單體服務(wù)如果出現(xiàn)性能瓶頸只能對(duì)軟件整體進(jìn)行擴(kuò)展,可能真正影響性能的只是其中一個(gè)很小的模塊,我們也不得不付出升級(jí)整個(gè)應(yīng)用的代價(jià)。這在微服務(wù)架構(gòu)中得到了改善,你可以只對(duì)那些影響性能的服務(wù)做擴(kuò)展升級(jí),這樣對(duì)癥下藥的效果是很好的。簡(jiǎn)化部署:如果你的服務(wù)是一個(gè)超大的單體服務(wù),有幾百萬(wàn)行代碼,即使修改了幾行代碼也要重新編譯整個(gè)應(yīng)用,這顯然是非常繁瑣的,而且軟件變更帶來的不確定性非常高,軟件部署的影響也非常大。在微服務(wù)架構(gòu)中,各個(gè)服務(wù)的部署是獨(dú)立的,如果真出了問題也只是影響單個(gè)服務(wù),可以快速回滾版本解決。易優(yōu)化:微服務(wù)架構(gòu)中單個(gè)服務(wù)的代碼量不會(huì)很大,這樣當(dāng)你需要重構(gòu)或者優(yōu)化這部分服務(wù)的時(shí)候,就會(huì)容易很多,畢竟,代碼量越少意味著代碼改動(dòng)帶來的影響越可控。微服務(wù)缺點(diǎn):我們上面一直在強(qiáng)調(diào)微服務(wù)的好處,但是,微服務(wù)架構(gòu)不是萬(wàn)能的,并不能解決所有問題,其實(shí)這也是微服務(wù)把單體應(yīng)用拆分成很多小的分布式服務(wù)導(dǎo)致的,所謂人多手雜,服務(wù)多起來管理的不好各種問題就來了。為了解決微服務(wù)的缺點(diǎn),前輩們提出了下面這些概念。服務(wù)注冊(cè)與發(fā)現(xiàn)微服務(wù)之間相互調(diào)用完成整體業(yè)務(wù)功能,如何在眾多微服務(wù)中找到正確的目標(biāo)服務(wù)地址,這就是所謂服務(wù)發(fā)現(xiàn)功能。服務(wù)調(diào)用方訂閱服務(wù)變更通知,動(dòng)態(tài)的接收服務(wù)注冊(cè)中心推送的服務(wù)地址列表,以后想找哪個(gè)服務(wù)直接發(fā)給他就可以。服務(wù)監(jiān)控單體程序的監(jiān)控運(yùn)維還好說,大型微服務(wù)架構(gòu)的服務(wù)運(yùn)維是一大挑戰(zhàn)。服務(wù)運(yùn)維人員需要實(shí)時(shí)的掌握服務(wù)運(yùn)行中的各種狀態(tài),最好有個(gè)控制面板能看到服務(wù)的內(nèi)存使用率、調(diào)用次數(shù)、健康狀況等信息。這就需要我們有一套完備的服務(wù)監(jiān)控體系,包括拓?fù)潢P(guān)系、監(jiān)控(Metrics)、日志監(jiān)控(Logging)、調(diào)用追蹤(Trace)、告警通知、健康檢查等。防患于未然。服務(wù)容錯(cuò)任何服務(wù)都不能保證100%不出問題,生產(chǎn)環(huán)境復(fù)雜多變,服務(wù)運(yùn)行過程中不可避免的發(fā)生各種故障(宕機(jī)、過載等等),我們能夠做的是在故障發(fā)生時(shí)盡可能降低影響范圍、盡快恢復(fù)正常服務(wù)。程序員為此需要引入熔斷、隔離、限流和降級(jí)、超時(shí)機(jī)制等服務(wù)容錯(cuò)機(jī)制來保證服務(wù)持續(xù)可用性。服務(wù)安全有些服務(wù)的敏感數(shù)據(jù)存在安全問題,服務(wù)安全就是對(duì)敏感服務(wù)采用安全鑒權(quán)機(jī)制,對(duì)服務(wù)的訪問需要進(jìn)行相應(yīng)的身份驗(yàn)證和授權(quán),防止數(shù)據(jù)泄露的風(fēng)險(xiǎn),安全是一個(gè)長(zhǎng)久的話題,在微服務(wù)中也有很多工作要做。服務(wù)治理說到治理一般都是有問題才需要治理,我們平常說環(huán)境治理、污染治理一個(gè)意思,微服務(wù)架構(gòu)中的微服務(wù)越來越多,上面說的那些問題就更加顯現(xiàn),為了解決上面微服務(wù)架構(gòu)缺陷服務(wù)治理就出現(xiàn)了。微服務(wù)的那些問題都要公司技術(shù)團(tuán)隊(duì)自己解決的話,如果不是大型公司有成熟的技術(shù)團(tuán)隊(duì),估計(jì)會(huì)很頭大。幸好,有巨人的肩膀可以借給我們站上去,通過引入微服務(wù)框架來幫助我們完成服務(wù)治理[13]。2.8項(xiàng)目技術(shù)選型前端技術(shù)選型:Vite腳手架搭建基本代碼框架,vue-router官方插件管理路由,vue-resourceAjax通信,pinia做為前端全局倉(cāng)庫(kù)進(jìn)行存儲(chǔ),使用Vite作為構(gòu)建工具,es6+eslinteslint:es6代碼風(fēng)格檢查工具工程化組件化模塊化flex彈性布局cssstickyfooter舊瀏覽器逐漸淘汰,移動(dòng)端需求增加,前端交互越來越多,功能越來越復(fù)雜,不支持ES5特性IE9+Chromesafarifirefox支持ES5特性MVVM框架針對(duì)具有復(fù)雜交互邏輯的前端應(yīng)用通過Ajax數(shù)據(jù)持久化,保證前端用戶體驗(yàn)。后端技術(shù)框架選型:網(wǎng)關(guān):SpringCloudGetway緩存:Redis搜索:ElasticSearch注冊(cè)中心:Nacos認(rèn)證鑒權(quán):JWT消費(fèi)隊(duì)列:RabbitMQ構(gòu)建工具:Maven分布式配置:SpringCloudConfig數(shù)據(jù)庫(kù):MySql、Redis分布式框架:Spring-Could
系統(tǒng)需求分析3.1系統(tǒng)總體需求隨著軟件系統(tǒng)架構(gòu)從單體式架構(gòu)到面向服務(wù)架構(gòu)的不斷演進(jìn),面向服務(wù)的架構(gòu)方式由于其靈活、解耦、規(guī)范化等諸多優(yōu)勢(shì),被廣泛應(yīng)用。對(duì)于校園信息化建設(shè)而言,資訊獲取和答疑的需求貫穿學(xué)生的學(xué)習(xí)和生活,研究利用大數(shù)據(jù)技術(shù)和微服務(wù)架構(gòu)建設(shè)答疑平臺(tái),使平臺(tái)具備良好并發(fā)能力,高可靠、高可用,對(duì)實(shí)現(xiàn)學(xué)校簡(jiǎn)化管理、提升服務(wù)水平、提高人才培養(yǎng)質(zhì)量具有實(shí)際價(jià)值和意義。本課題開發(fā)一套基于微服務(wù)架構(gòu)的線上答疑平臺(tái),實(shí)現(xiàn)大學(xué)生的學(xué)習(xí)和生活中準(zhǔn)確的資訊獲取和答疑反饋。利用大數(shù)據(jù)技術(shù)實(shí)現(xiàn)熱點(diǎn)推薦和個(gè)性化內(nèi)容推送,微服務(wù)架構(gòu)去中心化、高度自治、自動(dòng)化等特點(diǎn)進(jìn)一步對(duì)系統(tǒng)架構(gòu)進(jìn)行解耦,滿足軟件研發(fā)體系結(jié)構(gòu)發(fā)展需要,提高研發(fā)效率,規(guī)范服務(wù)治理。基于大數(shù)據(jù)技術(shù)和微服務(wù)架構(gòu)的線上校園答疑平臺(tái)方便快捷,功能豐富,主要具備發(fā)帖回帖、熱門推薦及個(gè)性化推送、私信、搜索、敏感詞過濾等功能。3.2線上答疑平臺(tái)功能性需求分析基于微服務(wù)架構(gòu)的線上答疑平臺(tái)分為系統(tǒng)管理員、普通用戶兩個(gè)角色。用戶可以搜索、收藏和評(píng)論他人發(fā)布的問題,可以與其他用戶進(jìn)行在線交流探討。管理員可以對(duì)用戶和文章進(jìn)行管理,對(duì)日志進(jìn)行查看,系統(tǒng)用例圖如下圖3-1所示。圖3-1系統(tǒng)用例圖3.2.1登錄用例圖管理員和用戶在不同的界面進(jìn)行登錄,登錄用例圖如下圖3-2所示。圖3-2登錄用例圖3.2.2用戶用例圖用戶可以進(jìn)行個(gè)人信息設(shè)置,添加關(guān)注,發(fā)布提問,對(duì)發(fā)布的文章進(jìn)行提問,瀏覽問題,登錄系統(tǒng),在線聊天,管理自己發(fā)布的提問等。用戶用例圖如下圖3-3所示。圖3-3用戶用例圖3.2.3管理員用例圖管理員可以對(duì)文章進(jìn)行管理,批量刪除,可以對(duì)用戶進(jìn)行管理,以及查看必要的日志信息,管理員用例圖如下圖3-4所示。圖3-4管理員用例圖3.2.4登錄流程圖當(dāng)用戶訪問網(wǎng)站時(shí)會(huì)先經(jīng)過網(wǎng)關(guān),判斷其是否攜帶token(非登錄頁(yè)面),如果沒有就跳轉(zhuǎn)到登錄頁(yè)面,用戶通過輸入正確的用戶名和密碼進(jìn)入前臺(tái)首頁(yè),并在redis中生成token,設(shè)置有效期,如果用戶名或密碼錯(cuò)誤,則提示錯(cuò)誤信息,登錄流程圖如下圖3-5所示。圖3-5登錄流程圖3.2.5文章發(fā)布流程圖文章的發(fā)布流程是這樣的,用戶可以對(duì)文章發(fā)布和舉報(bào),發(fā)布時(shí)elasticsearch對(duì)文章進(jìn)行倒排索引,當(dāng)文章被搜索時(shí)redis會(huì)進(jìn)行記錄并做熱點(diǎn)排名來推薦,管理員可以對(duì)文章進(jìn)行刪除,文章在展示到前臺(tái)時(shí)是會(huì)先進(jìn)行敏感詞過濾。文章流程圖如下圖3-6所示。圖3-6文章流程圖3.3系統(tǒng)可行性分析技術(shù)可行性∶項(xiàng)目選擇的技術(shù)棧較為成熟,許多大公司使用過,對(duì)于其中一些新技術(shù)通過少量時(shí)間是可以快速入門并使用的,應(yīng)用已有知識(shí),加上一定的對(duì)認(rèn)知盲區(qū)的學(xué)習(xí)是可以實(shí)現(xiàn)基于微服務(wù)架構(gòu)的線上答疑平臺(tái)的。經(jīng)濟(jì)可行性∶前文已經(jīng)提及了線上答疑模塊的作用及優(yōu)點(diǎn)-能夠更加快捷高效的獲取到自己想要的結(jié)果,所以。它能夠帶來很可觀的收益,遠(yuǎn)超開發(fā)成本。操作可行性:在項(xiàng)目構(gòu)建時(shí)借鑒了大量的網(wǎng)站操作方式,只為用戶可以有更好的操作體驗(yàn)。能夠達(dá)到用戶的需求。3.4數(shù)據(jù)流程分析3.4.1登錄數(shù)據(jù)流圖系統(tǒng)操作流程為,訪問站點(diǎn),判斷是否是登錄界面,是則放行,不是則判斷是否攜帶有效的token,攜帶則放行,未攜帶有效token則跳轉(zhuǎn)到登錄頁(yè)面,在登錄界面輸入用戶信息,與數(shù)據(jù)庫(kù)進(jìn)行比對(duì),如果存在則生成token,跳轉(zhuǎn)到首頁(yè),如果不存在,這提示錯(cuò)誤信息。登錄數(shù)據(jù)流圖如下圖3-7所示。圖3-7系統(tǒng)操作流程圖3.4.2文章、評(píng)論增加流程添加信息時(shí),數(shù)字字段由系統(tǒng)自動(dòng)生成,不能修改。用戶輸入其他信息,然后對(duì)數(shù)據(jù)進(jìn)行是否為空的判斷。如果符合要求,則寫入并保存到數(shù)據(jù)庫(kù)中,如果不符合要求,則提示用戶重新輸入數(shù)據(jù)。數(shù)據(jù)添加流程圖如圖3-8所示。開始開始自動(dòng)生成編號(hào)輸入文章相關(guān)信息xiangguan是否符合要求寫入數(shù)據(jù)庫(kù)結(jié)束是否圖3-8文章發(fā)布流程圖3.4.3文章修改流程修改信息時(shí),首先選擇要修改的文章,記錄文章唯一id,然后直接輸入數(shù)據(jù),判斷其是否為空。如果符合要求,則將其保存到數(shù)據(jù)庫(kù)中,如果不符合要求,則重新輸入。數(shù)據(jù)修改流程如下圖3-9所示。。開始開始獲取文章id輸入數(shù)據(jù)是否符合要求寫入數(shù)據(jù)庫(kù)結(jié)束是i否圖3-9文章修改流程圖3.4.4文章、評(píng)論刪除流程當(dāng)用戶選擇一條記錄并點(diǎn)擊刪除按鈕時(shí),系統(tǒng)會(huì)提示用戶是否刪除該記錄,用戶確定后根據(jù)唯一id刪除數(shù)據(jù)庫(kù)的相關(guān)內(nèi)容。數(shù)據(jù)刪除流程如下圖3-10所示。開始開始選擇需要?jiǎng)h除的記錄是否刪除chuchu除更新數(shù)據(jù)庫(kù)是否圖3-10數(shù)據(jù)刪除流程圖第4章系統(tǒng)設(shè)計(jì)4.1功能劃分基于微服務(wù)架構(gòu)的線上答疑平臺(tái)主要分為頻數(shù)較高的用戶使用的前臺(tái)系統(tǒng)與管理員使用的后臺(tái)管理系統(tǒng)構(gòu)成。4.1.1前臺(tái)系統(tǒng)的功能線上問答平臺(tái)前臺(tái)管理系統(tǒng)主要包括以下6個(gè)功能:(1)注冊(cè):用戶在訪問線上答疑平臺(tái)后,可以點(diǎn)擊注冊(cè),注冊(cè)成為線上答疑系統(tǒng)的會(huì)員,本線上答疑系統(tǒng)主要分為2類用戶,不同的會(huì)員注冊(cè)時(shí)所填的信息有所不同。(2)登錄:已經(jīng)注冊(cè)成為會(huì)員的用戶即可登錄,登錄需要輸入正確用戶名和密碼。(3)答疑中心:查看各種用戶發(fā)布過的各種問題并回答問題。(4)查看問題熱點(diǎn):登錄后點(diǎn)擊熱點(diǎn)問題信息可查看最新和最熱門的問題的詳細(xì)信息并能回答問題。(5)管理我的答疑信息:會(huì)員登錄后可以查看當(dāng)前用戶發(fā)布過的信息;也可以刪除失效的信息。(6)在線答疑:用戶登錄后可以在線于關(guān)注的人,好友,粉絲進(jìn)行聊天回答問題功能說明:不同會(huì)員登錄后可以發(fā)布不同的信息。會(huì)員可以學(xué)生發(fā)布問題信息和問題答案信息;管理員可以發(fā)布最新公告信息和問題信息。前臺(tái)層次模塊圖如下圖4-1所示。圖4-1前臺(tái)層次模塊圖4.1.2后臺(tái)系統(tǒng)的功能線上答疑平臺(tái)后臺(tái)管理系統(tǒng)主要包括以下5個(gè)功能:登錄:已經(jīng)注冊(cè)成為會(huì)員的用戶即可登錄,登錄需要輸入正確用戶名和密碼。用戶管理:查看用戶注冊(cè)的信息,可以添加用戶或者刪除用戶以及查詢用戶。提問文章管理:管理員可以刪除不合格的問題信息,可以修改問題的屬性。(4)日志管理:可以通過日志來查看系統(tǒng)運(yùn)行過程中產(chǎn)生的必要的日志。(5)問答搜索:管理員可以對(duì)問答進(jìn)行搜索。后臺(tái)層次模塊圖如下圖4-2所示。圖4-2后臺(tái)層次模塊圖4.2數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),數(shù)據(jù)庫(kù)是搭建系統(tǒng)的橋梁,是聯(lián)系實(shí)體關(guān)系的基本。線上答疑平臺(tái)共有用戶、文章、評(píng)論、用戶關(guān)系、消息5個(gè)實(shí)體通過其關(guān)系設(shè)計(jì)數(shù)據(jù)庫(kù)。4.2.1數(shù)據(jù)庫(kù)概要設(shè)計(jì)E-R圖為實(shí)體-聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法。本系統(tǒng)就是指用戶、文章、評(píng)論、用戶關(guān)系、消息之間的關(guān)系。用戶與文章、文章與評(píng)論、用戶與消息、用戶關(guān)系與文章之間都是一對(duì)多的關(guān)系,用戶與用戶關(guān)系是一對(duì)一的關(guān)系。該系統(tǒng)ER圖如圖4-3所示。圖4-3E-R關(guān)系圖該系統(tǒng)PDM圖如下圖4-4所示。圖4-4PDM圖表4-1實(shí)體表概要描述數(shù)據(jù)庫(kù)表名稱功能描述message聊天記錄存儲(chǔ)t_article記錄發(fā)布的提問文章t_comment記錄問題的回答t_relation記錄用戶之間的關(guān)系(關(guān)注,粉絲,好友)t_user用戶個(gè)人信息t_article_report舉報(bào)記錄表4.2.2數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)表4-2article(答疑)表FieldTypeNullKeyCommentidintNOPRI文章idtitlevarchar(50)NO提問文章標(biāo)題contentlongtextNO提問文章內(nèi)容createddateYES創(chuàng)建時(shí)間modifieddateYES修改時(shí)間categoriesvarchar(20)YES提問文章分類user_idintYes提問者idallow_commenttinyintYES是否允許回答表4-3用戶實(shí)體表FieldTypeNullKeyCommentidintNOPRI用戶idusernamevarchar(200)NO用戶名passwordvarchar(200)NO用戶密碼emailvarchar(200)Yes用戶郵箱createddateYES
創(chuàng)建時(shí)間validtinyintYES是否為有效用戶birthdayvarchar(200)YES生日imgvarchar(200)YES頭像表4-4聊天消息表FieldTypeNullKeyCommentIdintNoPRI唯一標(biāo)識(shí)IdFrom_yaVarchar(20)Yes消息發(fā)送者IdTo_yaVarchar(20)Yes消息接收者IdmsgtextYes發(fā)送的消息記錄表4-5關(guān)系記錄表FieldTypeNullKeyCommentidintNOPRIIduser_idintNO用戶idfan_listlongtextYES粉絲id列表star_listlongtextYES關(guān)注id列表collect_listlongtextYES收藏文章id列表表4-6問答記錄表FieldTypeNullKeyCommentIdIntNoPRI唯一標(biāo)識(shí)IdarticleIdvarchar(20)Yes提問文章編寫者Idreport_timedateYes文章舉報(bào)時(shí)間user_idIntYes用戶IdreasonTextYes評(píng)論內(nèi)容user_idIntYes評(píng)論用戶的id表4-7舉報(bào)記錄表FieldTypeNullKeyCommentIdintNoPRI唯一標(biāo)識(shí)Idarticle_idintYes提問文章編寫者Iduser_idvarchar(20)Yes舉報(bào)者idreasontextYes舉報(bào)原因report_timeintYes舉報(bào)時(shí)間系統(tǒng)實(shí)現(xiàn)線上答疑平臺(tái)用的是B/S構(gòu)架,后端是MVVM模式。前端使用的是vue3,一款JavaScript框架,使用ElementPlus框架來美化界面,后端是用SpringBoot框架來進(jìn)行開發(fā)。分為有提問、聊天、用戶、答疑、關(guān)系表五個(gè)實(shí)體類,通過實(shí)體之間的對(duì)應(yīng)關(guān)系來進(jìn)行開發(fā)程序。5.1數(shù)據(jù)庫(kù)的實(shí)現(xiàn)連接配置,基于springboot的自動(dòng)裝配原理,簡(jiǎn)化了繁瑣的配置,導(dǎo)入java-mysql的連接驅(qū)動(dòng),并在application.yml中配置數(shù)據(jù)源,通過idea創(chuàng)建message,t_article,t_comment,t_relation,,t_user,等數(shù)據(jù)表。5.2項(xiàng)目結(jié)構(gòu)后端項(xiàng)目結(jié)構(gòu)圖5-1項(xiàng)目整體圖5-2ElasticSearch模塊圖5-3用戶模塊前端項(xiàng)目結(jié)構(gòu)如下圖5-4所示。圖5-4前端模塊5.3Nacos注冊(cè)與配置中心
Nacos服務(wù)注冊(cè)中心,查看實(shí)例狀態(tài),進(jìn)行全局配置。如下圖5-5所示。圖5-5Nacos注冊(cè)配置中心
5.4前臺(tái)模塊實(shí)現(xiàn)5.4.1注冊(cè)、登錄功能的實(shí)現(xiàn)用戶訪問站點(diǎn),驗(yàn)證token是否有效,如果有效則顯示網(wǎng)站首頁(yè),如果token失效或者未攜帶則跳轉(zhuǎn)登錄頁(yè)面,進(jìn)行注冊(cè)/登陸,登錄頁(yè)面如圖5-6所示。輸入用戶名、密碼、輸入驗(yàn)證碼,點(diǎn)登陸,未注冊(cè)則提示注冊(cè),輸入賬號(hào)、密碼選擇角色注冊(cè)賬號(hào);注冊(cè)成功后可跳轉(zhuǎn)到登陸頁(yè)面;輸入賬號(hào)密碼選擇角色,點(diǎn)擊登陸,進(jìn)入系統(tǒng)功能頁(yè)面,生成token。圖5-6登錄界面5.4.2系統(tǒng)首頁(yè)實(shí)現(xiàn)根據(jù)文章搜索量來進(jìn)行查詢展示搜索量前十的文章,側(cè)邊欄展示好友(相互關(guān)注即為好友),關(guān)注,粉絲等,在首頁(yè)有設(shè)置個(gè)人信息,發(fā)布提問,打開聊天系統(tǒng),搜索文章等,如圖5-7所示。圖5-7前臺(tái)主頁(yè)面5.4.3文章編輯文章編輯采用富文本可以上傳圖片與視頻,以及常見的一些字體操作,如撤銷,加粗,字體選擇,下劃線,對(duì)齊方式等。如圖5-8所示。圖5-8答疑編輯頁(yè)面5.4.4個(gè)人信息管理用戶可以對(duì)自己的個(gè)人信息進(jìn)行完善,修改,主要包括用戶名,密碼,郵箱,生日等。如圖5-9所示。圖5-9個(gè)人信息編輯頁(yè)面這是我的主頁(yè)界面,可以看到自己的提問、回答、收藏等,并可以對(duì)其中的提問進(jìn)行刪除與修改,對(duì)其中的回復(fù)進(jìn)行刪除。如下圖5-10所示。圖5-10我的主頁(yè)5.4.5聊天系統(tǒng)用戶打開聊天系統(tǒng)可以與好友,粉絲,關(guān)注的人進(jìn)行聊天。如下圖5-11所示。圖5-11前臺(tái)聊天系統(tǒng)界面5.5后臺(tái)模塊實(shí)現(xiàn)管理員可以登錄后臺(tái)對(duì)用戶和文章進(jìn)行管理,主要包括用戶的添加、刪除修改和查看,及可用狀態(tài)查看,根據(jù)各個(gè)字段進(jìn)行精確搜索,和對(duì)文章的增加,刪除,修改,查看,根據(jù)各個(gè)字段進(jìn)行精確搜索,后臺(tái)界面如圖5-12所示。圖5-12文章管理界面后臺(tái)用戶管理主要是對(duì)用戶的增加,刪除,修改,查詢,以及批量操作。界面如圖5-13所示。圖5-13用戶管理界面第6章系統(tǒng)測(cè)試6.1系統(tǒng)測(cè)試的目的系統(tǒng)測(cè)試的目的是為了防止用戶在與系統(tǒng)進(jìn)行數(shù)據(jù)交互時(shí)因?yàn)橐恍┎缓戏ǖ妮斎雽?dǎo)致程序崩潰,及時(shí)找出系統(tǒng)存在的問題,保證系統(tǒng)的健壯性。6.2測(cè)試環(huán)境表6-1測(cè)試環(huán)境表計(jì)算機(jī)硬件環(huán)境CPU2.20GHz、64位操作系統(tǒng)計(jì)算機(jī)軟件環(huán)境IDEA2021.3.x64、Powerdesigner16.5、drawio、word2019、瀏覽器開發(fā)語(yǔ)言Java1.8、SQL語(yǔ)言通信協(xié)議http協(xié)議、ws雙向通信數(shù)據(jù)庫(kù)MySQL8.0、Navicat測(cè)試方案設(shè)計(jì)測(cè)試主要采用黑盒測(cè)試。黑盒測(cè)試法不會(huì)去關(guān)注程序內(nèi)部的邏輯,只是通過系統(tǒng)的接口進(jìn)行數(shù)據(jù)輸入檢查系統(tǒng)功能是否符合預(yù)期的輸出,工作是否正常。6.4測(cè)試用例構(gòu)建以下是對(duì)基于微服務(wù)架構(gòu)的線上答疑平臺(tái)的各個(gè)功能方面等的測(cè)試,表6-2就體現(xiàn)了整個(gè)系統(tǒng)階段的測(cè)試。表6-2測(cè)試階段技術(shù)說明表測(cè)試階段技術(shù)是否采用相關(guān)說明信息審評(píng)測(cè)試是軟件系統(tǒng)的功能和設(shè)計(jì)文檔的測(cè)試,在需求和設(shè)計(jì)階段進(jìn)行編寫測(cè)試用例是在測(cè)試用例的準(zhǔn)備階段系統(tǒng)代碼單元測(cè)試是在編寫完模塊進(jìn)行功能測(cè)試是在編寫完部分業(yè)務(wù)邏輯時(shí)經(jīng)行集成測(cè)試是集成系統(tǒng)來檢測(cè)模塊的要求,業(yè)務(wù)流程和數(shù)據(jù)處理是否滿足條件,業(yè)務(wù)流處理的系統(tǒng),如果沒有嚴(yán)格的邏輯和錯(cuò)誤系統(tǒng)測(cè)試是包括性能測(cè)試,壓力測(cè)試和回歸測(cè)試6.5功能測(cè)試表6-3注冊(cè)、登錄測(cè)試表測(cè)試編號(hào)測(cè)試用例測(cè)試數(shù)據(jù)預(yù)期輸出測(cè)試結(jié)果SW-1都不填入數(shù)據(jù)賬號(hào):空密碼:空分別角色:不選擇提示請(qǐng)輸入用戶名、密碼、選擇角色通過SW-2只輸入賬號(hào)不輸入密碼,選擇角色賬號(hào):jxd密碼:空角色:用戶提示請(qǐng)輸入密碼通過SW-3輸入未注冊(cè)的賬號(hào)密碼,選擇角色賬號(hào):jxd密碼:666666角色:用戶提示未注冊(cè)請(qǐng)先注冊(cè)通過SW-4 輸入正確的賬號(hào)密碼賬號(hào):jxd密碼:123456角色:用戶跳轉(zhuǎn)前臺(tái)首頁(yè)通過6.5.1前臺(tái)模塊測(cè)試前臺(tái)首頁(yè)主要是包括個(gè)人信息修改跳轉(zhuǎn)、文章發(fā)布、瀏覽熱點(diǎn),搜索文章5個(gè)功能的測(cè)試。用戶相關(guān)操作測(cè)試如下表6-4所示。表6-4用戶相關(guān)操作測(cè)試表測(cè)試編號(hào)測(cè)試用例測(cè)試輸入數(shù)據(jù)預(yù)期輸出測(cè)試結(jié)果RT-1點(diǎn)擊首頁(yè)熱點(diǎn)文章文章id跳轉(zhuǎn)文章詳情頁(yè),展示文章詳情及評(píng)論。通過RT-2點(diǎn)擊個(gè)人信息設(shè)置,修改個(gè)人信息,點(diǎn)擊提交按鈕用戶名:zs密碼:123456手示修改成功通過RT-3點(diǎn)擊全部關(guān)注按鈕用戶id展示自己的所有關(guān)注在側(cè)邊欄通過RT-4點(diǎn)擊我的粉絲按鈕用戶id展示自己的全部粉絲在側(cè)邊欄通過RT-5點(diǎn)擊我的好友按鈕用戶id展示自己的全部好友在側(cè)邊欄通過RT-6點(diǎn)擊去提問,并上傳圖片,視頻,點(diǎn)擊上傳按鈕用戶id提問內(nèi)容:略提問標(biāo)題:title提問分類:無提示上傳成功并返回主頁(yè)面通過RT-6點(diǎn)擊我的提問并點(diǎn)擊查詢出來的文章用戶id展示自己所有的提問,進(jìn)入文章詳情(包括用戶信息,評(píng)論信息,文章信息)通過RT-7點(diǎn)擊我的收藏并點(diǎn)擊查詢出來的文章用戶id展示自己所有的收藏,進(jìn)入文章詳情(包括用戶信息,評(píng)論信息,文章信息)通過提問文章相關(guān)操作測(cè)試如下表6-5所示:表6-5后臺(tái)登錄測(cè)試用例測(cè)試編號(hào)測(cè)試用例測(cè)試數(shù)據(jù)預(yù)期輸出測(cè)試結(jié)果M-F1文章中輸入違禁詞違禁詞***通過M-F2點(diǎn)擊上傳按鈕無提示請(qǐng)輸入必填信息在提交通過M-F3輸入提問的內(nèi)容后,點(diǎn)擊上傳按鈕用戶id提問內(nèi)容:略提問標(biāo)題:title提問分類:無提示提交成功通過M-F3根據(jù)關(guān)鍵字對(duì)提問文章進(jìn)行搜索方差展示與方差有關(guān)的文章通過6.5.2后臺(tái)模塊測(cè)試表6-6后臺(tái)登錄測(cè)試用例測(cè)試編號(hào)測(cè)試用例測(cè)試數(shù)據(jù)及步驟預(yù)期輸出測(cè)試結(jié)果KG1正確輸入用戶名和密碼輸入正確用戶名:admin輸入正確密碼:123456輸入正確驗(yàn)證碼點(diǎn)擊登錄登錄成功,進(jìn)入后臺(tái)首頁(yè)通過KG2錯(cuò)誤輸入用戶名和密碼輸入正確用戶名:user輸入正確密碼:1233.輸入正確驗(yàn)證碼4.點(diǎn)擊登錄提示用戶名或密碼不正確通過KG3不輸入任何類容點(diǎn)擊登錄按鈕提示請(qǐng)輸入用戶名通過表6-7后臺(tái)用戶管理測(cè)試用例測(cè)試編號(hào)測(cè)試用例測(cè)試數(shù)據(jù)預(yù)期輸出測(cè)試結(jié)果RW1批量刪除違規(guī)用戶選中用戶zs,ls,點(diǎn)擊刪除按鈕提示刪除成功通過RW2搜索用戶輸入用戶名:jxd點(diǎn)擊查詢按鈕在用戶列表中分頁(yè)展示相關(guān)用戶信息通過RW3添加普通用戶輸入用戶名:w5輸入密碼:123456點(diǎn)擊添加按鈕提示添加成功,返回用戶列表通過表6-8后臺(tái)文章管理測(cè)試用例測(cè)試編號(hào)測(cè)試用例測(cè)試數(shù)據(jù)預(yù)期輸出測(cè)試結(jié)果RW1批量刪除違規(guī)文章選中查詢出的違規(guī)文章,點(diǎn)擊刪除按鈕提示刪除成功通過RW2查詢文章輸入文章標(biāo)題:操作系統(tǒng),點(diǎn)擊查詢按鈕在文章列表中分頁(yè)展示相關(guān)文章信息通過RW3添加文章輸入文章標(biāo)題,內(nèi)容提示添加成功,返回文章列表通過6.6測(cè)試分析在寫代碼前因?yàn)闃?gòu)思時(shí)考慮不周全,出現(xiàn)了一些小問題,通過系統(tǒng)的進(jìn)行測(cè)試還是發(fā)現(xiàn)了問題,比如開始時(shí)敏感詞過濾失敗,在測(cè)試中并沒有出現(xiàn)預(yù)期的結(jié)果,通過調(diào)試代碼找到了原因是敏感詞組路徑?jīng)]寫對(duì),并將其解決了。黑盒測(cè)試可以快速的對(duì)系統(tǒng)進(jìn)行測(cè)試,我們?cè)谔顚憯?shù)據(jù)時(shí)也要多注意邊界數(shù)據(jù)的測(cè)試,部分需要入庫(kù)的數(shù)據(jù)還要注意SQL攻擊的防護(hù)。第7章總結(jié)與展望7.1總結(jié)線上答疑平臺(tái)是教育現(xiàn)代化不可缺少的一個(gè)環(huán)節(jié)。線上答疑平臺(tái)以成都工業(yè)學(xué)院為中心的實(shí)施教育信息化,學(xué)習(xí)網(wǎng)絡(luò)大眾化。不論是在各個(gè)學(xué)校學(xué)院的學(xué)生教師和社會(huì)上工作的人們,會(huì)在迷惑時(shí)得到清楚的答案。因此該系統(tǒng)有較高的實(shí)用性。為老師和學(xué)生提供一個(gè)操作友好的線上答疑平臺(tái),可以讓我們多一種方式去獲取答案,彌補(bǔ)線下答疑的不足之處。線上答疑平臺(tái)的特點(diǎn):該系統(tǒng)的實(shí)現(xiàn)采用了當(dāng)前流行的技術(shù)springboot,這樣既方便以后的二次開發(fā),又使出現(xiàn)問題時(shí)解決方案變得簡(jiǎn)單。在設(shè)計(jì)方面咨詢了教師和在校學(xué)生的意見,同時(shí)也上網(wǎng)查看了國(guó)內(nèi)影響范圍較廣泛的答疑系統(tǒng),從中獲得不少的教育行業(yè)需求知識(shí)。系統(tǒng)完全按照教育行業(yè)的實(shí)際需求進(jìn)行開發(fā),實(shí)用性較強(qiáng)。線上答疑平臺(tái)的實(shí)現(xiàn)功能:該系統(tǒng)前臺(tái)主要實(shí)現(xiàn)了發(fā)布問題,回答問題,實(shí)時(shí)對(duì)話,留言回復(fù),熱點(diǎn)推送等功能,該系統(tǒng)后臺(tái)主要是對(duì)用戶及文章進(jìn)行管理,以及日志管理,系統(tǒng)接口查看。線上答疑平臺(tái)的不足與改進(jìn)方案:系統(tǒng)目前還存在著一些不足與需要改進(jìn)的地方:由于技術(shù)和時(shí)間上的原因,前端用戶界面不是很美觀,用戶體驗(yàn)效果可能會(huì)受到影響,由于前期數(shù)據(jù)庫(kù)表設(shè)計(jì)考慮的不是很全面,造成的系統(tǒng)可維護(hù)性降低,架
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新能源行業(yè)存貨質(zhì)押貸款專項(xiàng)合同2篇
- 2025年度個(gè)人技術(shù)入股收益分配合同范本4篇
- 2025年度房地產(chǎn)項(xiàng)目融資擔(dān)保借款合同樣本4篇
- 二零二五年度門窗行業(yè)市場(chǎng)推廣與宣傳合同4篇
- 二零二五年智慧社區(qū)安防監(jiān)控系統(tǒng)安裝合同5篇
- 二零二五年度城市廣場(chǎng)場(chǎng)地租賃合同2篇
- 2025年度全國(guó)棉花運(yùn)輸服務(wù)合同范本4篇
- 二零二五年外墻涂料翻新工程施工安全監(jiān)管與隱患排查合同3篇
- 2025年度特種用途面包車租賃合同范本4篇
- 2025年度企業(yè)員工股票購(gòu)買貸款合同終止后貸款處理協(xié)議
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第十一章運(yùn)動(dòng)技能的練習(xí)
- 蟲洞書簡(jiǎn)全套8本
- 射頻在疼痛治療中的應(yīng)用
- 四年級(jí)數(shù)學(xué)豎式計(jì)算100道文檔
- “新零售”模式下生鮮電商的營(yíng)銷策略研究-以盒馬鮮生為例
- 項(xiàng)痹病辨證施護(hù)
- 職業(yè)安全健康工作總結(jié)(2篇)
- 懷化市數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)發(fā)展概況及未來投資可行性研究報(bào)告
- 07FD02 防空地下室電氣設(shè)備安裝
- 教師高中化學(xué)大單元教學(xué)培訓(xùn)心得體會(huì)
- 彈簧分離問題經(jīng)典題目
評(píng)論
0/150
提交評(píng)論