版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《分布式計(jì)算、云計(jì)算與大數(shù)據(jù)》習(xí)題解答參考第1章分布式計(jì)算概述選擇題1,CD2,ABC3,ABCD4,ACD簡(jiǎn)答題參考1.1.1和1.1.2節(jié)參考1.1.2節(jié)分布式計(jì)算關(guān)鍵技術(shù)是進(jìn)程間通信,參考1.3.2節(jié)單播和組播超時(shí)和多線程試驗(yàn)題進(jìn)程A在進(jìn)程B發(fā)送receive前發(fā)起send操作進(jìn)程B在進(jìn)程A發(fā)起send前發(fā)出receive操作進(jìn)程A在進(jìn)程B發(fā)送receive前發(fā)起send操作進(jìn)程B在進(jìn)程A發(fā)起send前發(fā)出receive操作1).在提供阻塞send操作和阻塞receive操作通信系統(tǒng)中在提供非阻塞send操作和阻塞receive操作通信系統(tǒng)中2).P1,P2,P3進(jìn)程間通信次序狀態(tài)圖第2章分布式計(jì)算范型概述消息傳遞,客戶-服務(wù)器,P2P,分布式對(duì)象,網(wǎng)絡(luò)服務(wù),移動(dòng)代理等分布式應(yīng)用最廣泛最流行范型是客戶-服務(wù)器范型,參考2.2節(jié)分布式應(yīng)用最基本范型是消息傳遞模型,參考2.1節(jié)參考2.3節(jié),P2P應(yīng)用有很多,比如Napster,迅雷,PPS網(wǎng)絡(luò)電視等參考2.4節(jié)參考2.7節(jié)略消息傳遞模式是最基本分布式計(jì)算范型,適適用于大多數(shù)應(yīng)用;客戶-服務(wù)器范型是最流行分布式計(jì)算范型,應(yīng)用最為廣泛;P2P范型又稱為對(duì)等結(jié)構(gòu)范型,使得網(wǎng)絡(luò)以最有效率方式運(yùn)行,適適用于各參加者地位平等網(wǎng)絡(luò);分布式對(duì)象范型,是抽象化遠(yuǎn)程調(diào)用,適適用于復(fù)雜分布式計(jì)算應(yīng)用等。略中間件又稱為代理,中間件為參加對(duì)象提供內(nèi)容抽象,隱藏對(duì)象引用,起到中介作用。略第3章Socket編程與客戶服務(wù)器應(yīng)用開(kāi)發(fā)填空題數(shù)據(jù)包socket,流式socket無(wú)連接方式,面向連接方式數(shù)據(jù)層,業(yè)務(wù)層,應(yīng)用層迭代服務(wù)器和并發(fā)服務(wù)器有狀態(tài)服務(wù)器和無(wú)狀態(tài)服務(wù)器簡(jiǎn)答題API:ApplicationProgrammingInterface,應(yīng)用程序編程接口,是一些預(yù)先定義函數(shù),目標(biāo)是提供給用程序與開(kāi)發(fā)人員基于某軟件或硬件得以訪問(wèn)一組例程能力,而又無(wú)需訪問(wèn)源碼,或了解內(nèi)部工作機(jī)制細(xì)節(jié)SocketAPI:套接字應(yīng)用程序編程接口,適適用于進(jìn)程間通信套接字應(yīng)用程序編程接口Winsock:Windows下網(wǎng)絡(luò)編程規(guī)范-WindowsSockets是Windows下得到廣泛應(yīng)用、開(kāi)放、支持多個(gè)協(xié)議網(wǎng)絡(luò)編程接口。無(wú)連接方式將以任意次序抵達(dá),而有連接方式則以發(fā)送次序按序抵達(dá)setToTimeout設(shè)置為0則表示永無(wú)超時(shí),/**thisexampleillustratesthebasicmethodforreceivingadatagrampacket*/try{DatagramSocketmySocket=newDatagramSocket(port); System.out.println("Waitingforreceivingthedata!");//instantiatesadatagramsocketforreceivingthedatabyte[]buffer=newbyte[100];DatagramPacketdatagram=newDatagramPacket(buffer,MAX_LEN);mySocket.setSoTimeout(5000);}catch(SocketTimeoutExceptione){System.out.println(“serverresponsetimeout”);e.printStackTrace();}略第4章RMI范型與應(yīng)用消息傳遞范型是最基本分布式計(jì)算范型,要求參加雙方是緊耦合,交互過(guò)程中,進(jìn)程之間必須直接通信,假如進(jìn)程之間通信消息丟失(因?yàn)橥ㄐ沛溌?、系統(tǒng)或某個(gè)進(jìn)程失?。?,協(xié)作將失??;消息傳遞范型是面向數(shù)據(jù)范型,適適用于網(wǎng)絡(luò)服務(wù)和簡(jiǎn)單網(wǎng)絡(luò)應(yīng)用,不過(guò)不適合包含大量混合請(qǐng)求和應(yīng)答復(fù)雜應(yīng)用。而分布式對(duì)象范型是在消息傳遞模型之上提供抽象一個(gè)范型。與面向數(shù)據(jù)范型相比,分布式對(duì)象范型是面向行為,它用分布式對(duì)象表示網(wǎng)絡(luò)資源,重視于從網(wǎng)絡(luò)資源請(qǐng)求服務(wù),請(qǐng)求進(jìn)程調(diào)用分布式對(duì)象某個(gè)方法或操作,將數(shù)據(jù)作為方法參數(shù)傳遞。隨即該方法在遠(yuǎn)程主機(jī)上執(zhí)行,并將結(jié)果作為返回值回送給請(qǐng)求進(jìn)程。這里說(shuō)當(dāng)?shù)剡^(guò)程調(diào)用,主要是指當(dāng)?shù)剡M(jìn)程間通信,是運(yùn)行在同一塊內(nèi)存區(qū)域之內(nèi)進(jìn)程間相互通信,通常由系統(tǒng)IPC接口(如消息隊(duì)列,信號(hào)量,共享存放等)來(lái)實(shí)現(xiàn),也能夠經(jīng)過(guò)當(dāng)?shù)靥捉幼址绞綄?shí)現(xiàn)。而遠(yuǎn)程過(guò)程調(diào)用,則是在當(dāng)?shù)剡^(guò)程調(diào)用基礎(chǔ)上實(shí)現(xiàn)遠(yuǎn)程進(jìn)程之間通信,通常由網(wǎng)絡(luò)套接字來(lái)編程實(shí)現(xiàn),遠(yuǎn)程過(guò)程調(diào)用會(huì)被物理網(wǎng)絡(luò)通信情況有所限制,也增加了安全問(wèn)題,不過(guò)不再受當(dāng)?shù)貎?nèi)存空間以及系統(tǒng)資源限制。參考5.2.3節(jié)傳統(tǒng)遠(yuǎn)程方法調(diào)用是指只能從客戶端向服務(wù)端發(fā)起調(diào)用,增加了回調(diào)機(jī)制以后,客戶能夠在服務(wù)端注冊(cè)自己,客戶端能夠向服務(wù)器提供能夠被調(diào)用方法,我們形象稱之為回調(diào),這么服務(wù)端就能夠主動(dòng)向客戶端發(fā)起遠(yuǎn)程方法調(diào)用。當(dāng)服務(wù)器開(kāi)放stub動(dòng)態(tài)下載時(shí),客戶端不再需要預(yù)先配置stub文件,而是經(jīng)過(guò)網(wǎng)絡(luò)動(dòng)態(tài)下載服務(wù)器上提供stub文件,不過(guò)這會(huì)為服務(wù)器帶來(lái)安全隱患,所以經(jīng)過(guò)提供安全管理器來(lái)實(shí)現(xiàn)共享目錄訪問(wèn)權(quán)限,在實(shí)現(xiàn)stub下載同時(shí)也增加了服務(wù)器安全性。stub下載是指能夠經(jīng)過(guò)網(wǎng)絡(luò)從服務(wù)器指定目錄動(dòng)態(tài)下載stub文件,而無(wú)需預(yù)先在客戶端配置stub文件。代理是一個(gè)中間件,經(jīng)過(guò)引入代理,解耦原來(lái)對(duì)象關(guān)聯(lián),增強(qiáng)擴(kuò)展性。略第5章WEB原理與應(yīng)用開(kāi)發(fā)選擇題1.B 2.D 3.D 4.D 5.A 6.BD 7.B 8.D 解析:<%@includefile="relativeURL"%>這是jsp指令元素9.C 10.B11.A 12.C 13.C 14.A 14.B 15.C 16.C 17.D18.C 解析:<jsp:include>是jsp動(dòng)作元素 19.C 20.A 21.D22.B 23.A 24.E 25.D 26.E 27.B 28.E 29.D 30.A31.A 32.BC 33.B 34.D二、填空題1.Tomcat 2.8080 3.servlet 4.<jsp:include> 5.GB2312 6.<%--這是注釋內(nèi)容--%> 7.request 8.setContentType(Strings) 9.response\addCookie(c) 10.靜態(tài)頁(yè)面\動(dòng)態(tài)頁(yè)面 11.http://localhost:808012.web.xml 13.<%@page%>/<%@includefile=””%>/<%@taglibprefix=””uri=””%>14.session 15.gbk 16.一對(duì)多/多對(duì)一三、名詞解釋及解答1.靜態(tài)網(wǎng)頁(yè)是實(shí)際存在,無(wú)需經(jīng)過(guò)服務(wù)器編譯,直接加載到客戶瀏覽器上顯示出來(lái)。2.所謂動(dòng)態(tài)網(wǎng)頁(yè)是指網(wǎng)頁(yè)文件里包含了程序代碼,經(jīng)過(guò)后臺(tái)數(shù)據(jù)庫(kù)與Web服務(wù)器信息交互,由后臺(tái)數(shù)據(jù)庫(kù)提供實(shí)時(shí)數(shù)據(jù)更新和數(shù)據(jù)查詢服務(wù)。3.數(shù)據(jù)和資源共享這兩種方式結(jié)合在一起即成為今天廣泛使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)(WEB數(shù)據(jù)庫(kù)),它是以后臺(tái)(遠(yuǎn)程)數(shù)據(jù)庫(kù)為基礎(chǔ),加上一定前臺(tái)(當(dāng)?shù)赜?jì)算機(jī))程序,經(jīng)過(guò)瀏覽器完成數(shù)據(jù)存放、查詢等操作系統(tǒng)。4.前者是指令元素、后者是行為元素。jsp:include動(dòng)作和include指令之間根本性不一樣在于它們被調(diào)用時(shí)間。jsp:include動(dòng)作在請(qǐng)求期間被激活,而include指令在頁(yè)面轉(zhuǎn)換期間被激活。request對(duì)象是從客戶端向服務(wù)器發(fā)出請(qǐng)求,包含用戶提交信息以及客戶端一些信息??蛻舳丝山?jīng)過(guò)HTML表單或在網(wǎng)頁(yè)地址后面提供參數(shù)方法提交數(shù)據(jù),然后經(jīng)過(guò)request對(duì)象相關(guān)方法來(lái)獲取這些數(shù)據(jù)。request各種方法主要用來(lái)處理客戶端瀏覽器提交請(qǐng)求中各項(xiàng)參數(shù)和選項(xiàng)。JSPresponse隱藏對(duì)象在轉(zhuǎn)換為Servlet之后,對(duì)應(yīng)于HttpServletResponse型態(tài)對(duì)象,HttpServletResponse對(duì)象是關(guān)于于對(duì)客戶端請(qǐng)求之響應(yīng),它能夠來(lái)設(shè)定一些要響應(yīng)訊息,比如標(biāo)題信息、響應(yīng)狀態(tài)碼等.7.①跨平臺(tái)既然JSP是基于Java語(yǔ)言,那么它就能夠使用JavaAPI,所以它也是跨平臺(tái),能夠應(yīng)用在不一樣系統(tǒng)中,如Windows、Linux、Mac和Solaris等正是因?yàn)榭缙脚_(tái)特征,使得采取JSP技術(shù)開(kāi)發(fā)項(xiàng)目能夠不加修改地應(yīng)用到任何不一樣平臺(tái)上,這也應(yīng)驗(yàn)了Java語(yǔ)言"一次編寫,四處運(yùn)行"特點(diǎn)。②業(yè)務(wù)代碼分離采取JSP技術(shù)開(kāi)發(fā)項(xiàng)目,通常使用HTML語(yǔ)言來(lái)設(shè)計(jì)和格式化靜態(tài)頁(yè)面內(nèi)容,而使用JSP標(biāo)簽和Java代碼片段來(lái)實(shí)現(xiàn)動(dòng)態(tài)部分。③組件重用JSP中能夠使用JavaBean編寫業(yè)務(wù)組件,也就是使用一個(gè)JavaBean類封裝業(yè)務(wù)處理代碼或者作為一個(gè)數(shù)據(jù)存放模型,在JSP頁(yè)面甚至整個(gè)項(xiàng)目中都能夠重復(fù)使用這個(gè)JavaBean。JavaBean也能夠應(yīng)用到其余Java應(yīng)用程序中,包含桌面應(yīng)用程序。④繼承JavaServlet功效Servlet是JSP出現(xiàn)之前主要JavaWeb處理技術(shù)。它接收用戶請(qǐng)求,在Servlet類中編寫全部Java和HTML代碼,然后經(jīng)過(guò)輸出流把結(jié)果頁(yè)面返回給瀏覽器。⑤預(yù)編譯預(yù)編譯就是在用戶第一次經(jīng)過(guò)瀏覽器訪問(wèn)JSP頁(yè)面時(shí),服務(wù)器將對(duì)JSP頁(yè)面代碼進(jìn)行編譯,而且僅執(zhí)行一次編譯。編譯好代碼將被保留,在用戶下一次訪問(wèn)時(shí),直接執(zhí)行編譯好代碼。這么不但節(jié)約了服務(wù)器CPU資源,還大大提升了客戶端訪問(wèn)速度。8.需要Java運(yùn)行環(huán)境和JSP服務(wù)器;JDK即JavaDevelopmentKit,是Java運(yùn)行所必須環(huán)境包。JSP服務(wù)器有Tomcat/Weblogic/websphere/JBOSS等等。9.它是軟件系統(tǒng)體系結(jié)構(gòu),經(jīng)過(guò)它能夠充分利用兩端硬件環(huán)境優(yōu)勢(shì),將任務(wù)合理分配到Client端和Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)通訊開(kāi)銷。10.B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),它將系統(tǒng)功效實(shí)現(xiàn)關(guān)鍵部分集中到服務(wù)器上,簡(jiǎn)化了系統(tǒng)開(kāi)發(fā)、維護(hù)和使用??蛻魴C(jī)上只要安裝一個(gè)瀏覽器(Browser),如NetscapeNavigator或InternetExplorer,服務(wù)器安裝Oracle、Sybase、Informix或SQLServer等數(shù)據(jù)庫(kù)。11.動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言有JSP、ASP和PHP等等。JSP(JavaServerPages)是由SunMicrosystems企業(yè)提倡、許多企業(yè)參加一起建立一個(gè)動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。ASP是ActiveServerPage縮寫,意為“動(dòng)態(tài)服務(wù)器頁(yè)面”。ASP是微軟企業(yè)開(kāi)發(fā)代替CGI腳本程序一個(gè)應(yīng)用,它能夠與數(shù)據(jù)庫(kù)和其它程序進(jìn)行交互,是一個(gè)簡(jiǎn)單、方便編程工具。PHP,是英文超文本預(yù)處理語(yǔ)言HypertextPreprocessor縮寫。PHP是一個(gè)HTML內(nèi)嵌式語(yǔ)言,是一個(gè)在服務(wù)器端執(zhí)行嵌入HTML文檔腳本語(yǔ)言,語(yǔ)言格調(diào)有類似于C語(yǔ)言,被廣泛地利用。12.JavaScript是一個(gè)基于對(duì)象和事件驅(qū)動(dòng)并具備相對(duì)安全性客戶端腳本語(yǔ)言。同時(shí)也是一個(gè)廣泛用于客戶端Web開(kāi)發(fā)腳本語(yǔ)言,慣用來(lái)給HTML網(wǎng)頁(yè)添加動(dòng)態(tài)功效,比如響應(yīng)用戶各種操作。13.Session是用于保持狀態(tài)基于Web服務(wù)器方法。Session允許經(jīng)過(guò)將對(duì)象存放在Web服務(wù)器內(nèi)存中在整個(gè)用戶會(huì)話過(guò)程中保持任何對(duì)象。14.Cookie,有時(shí)也用其復(fù)數(shù)形式Cookies,指一些網(wǎng)站為了分辨用戶身份、進(jìn)行session跟蹤而儲(chǔ)存在用戶當(dāng)?shù)亟K端上數(shù)據(jù)(通常經(jīng)過(guò)加密)。15.當(dāng)用戶經(jīng)過(guò)瀏覽器訪問(wèn)一個(gè)Web站點(diǎn)時(shí),首先向服務(wù)器發(fā)送一個(gè)連接請(qǐng)求,請(qǐng)求內(nèi)容包含服務(wù)器地址和請(qǐng)求頁(yè)面路徑。服務(wù)器依照用戶請(qǐng)求路徑以及頁(yè)面路徑組合起來(lái)查找到對(duì)應(yīng)頁(yè)面,然后返回客戶端??蛻舳嗽谙蚍?wù)器端提交數(shù)據(jù)時(shí)有多個(gè)數(shù)據(jù)提交機(jī)制,最慣用是GET方法和POST方法。16.servlet有良好生存期定義,包含加載和實(shí)例化、初始化、處理請(qǐng)求以及服務(wù)結(jié)束。這個(gè)生存期由javax.servlet.Servlet接口init,service和destroy方法表示。Servlet被服務(wù)器實(shí)例化后,容器運(yùn)行其init方法,請(qǐng)求抵達(dá)時(shí)運(yùn)行其service方法,service方法自動(dòng)派遣運(yùn)行與請(qǐng)求對(duì)應(yīng)doXXX方法(doGet,doPost)等,當(dāng)服務(wù)器決定將實(shí)例銷毀時(shí)候調(diào)用其destroy方法。第6章P2P原理與實(shí)踐P2P基本概念是什么?答:P2P,即Peer-to-Peer縮寫,在英語(yǔ)中“Peer”表示“對(duì)等者”和“搭檔”意思,所以我們常稱它為“點(diǎn)對(duì)點(diǎn)”或者“端對(duì)端”,而學(xué)術(shù)界常稱它為“對(duì)等計(jì)算”。P2P是一個(gè)以非集中化方式使用分布式資源來(lái)完成一些關(guān)鍵任務(wù)系統(tǒng)和應(yīng)用。P2P技術(shù)有哪些特點(diǎn)?答:非中心化、可擴(kuò)展性高、健壯性強(qiáng)、高性價(jià)比、負(fù)載均衡等。說(shuō)明P2P網(wǎng)絡(luò)有哪幾個(gè)拓?fù)浣Y(jié)構(gòu),并舉出它們經(jīng)典應(yīng)用系統(tǒng)。答:中心化拓?fù)?,?yīng)用:Napster;全分布式非結(jié)構(gòu)化拓?fù)洌瑧?yīng)用:Gnutella;全分布式結(jié)構(gòu)化拓?fù)?,?yīng)用:Chord;半分布式拓?fù)?,?yīng)用:KaZaA。嘗試開(kāi)發(fā)一個(gè)基于P2P模式簡(jiǎn)單文件傳輸系統(tǒng)。暫未完成對(duì)于P2P未來(lái),你有哪些感想?略第7章WebServices1.什么是WebServices?答:WebServices是基于網(wǎng)絡(luò)、自包含、分布式模塊化組件;它執(zhí)行特定任務(wù),恪守詳細(xì)技術(shù)規(guī)范,這些技術(shù)規(guī)范使得WebServices能與其余兼容組件進(jìn)行互操作;通常由企業(yè)公布能完成特定業(yè)務(wù)需求在線服務(wù),而其余企業(yè)或應(yīng)用軟件能夠經(jīng)過(guò)Internet尋求到自己所需服務(wù),并調(diào)用此服務(wù),以完成特定需求。2.WebServices有哪些特點(diǎn)?答:WebServices具備良好封裝性、松耦合性、高度可集成性和易于構(gòu)建特點(diǎn)3.在哪些應(yīng)用場(chǎng)所中適合使用WebServices方案?答:WebServices適用場(chǎng)所有:跨防火墻通信、應(yīng)用程序集成、B2B集成和軟件及數(shù)據(jù)重用。4.簡(jiǎn)述WebServices體系架構(gòu)和工作原理。答:WebServices體系架構(gòu)能夠參見(jiàn)本章圖8.1。在經(jīng)典情況下,Web服務(wù)由服務(wù)提供者、服務(wù)使用者和注冊(cè)中心三者組成。服務(wù)提供者托管可經(jīng)過(guò)網(wǎng)絡(luò)訪問(wèn)特定軟件模塊,定義WebServices服務(wù)描述并將服務(wù)公布到服務(wù)注冊(cè)中心統(tǒng)一目錄中;服務(wù)請(qǐng)求者使用查找操作從注冊(cè)中心中檢索特定服務(wù),然后使用服務(wù)描述與服務(wù)提供者進(jìn)行綁定并調(diào)用對(duì)應(yīng)服務(wù),以進(jìn)行交互。5.XML有哪些特點(diǎn)?答:可擴(kuò)展性、自描述性、簡(jiǎn)練性、數(shù)據(jù)描述與顯示相分離、易于數(shù)據(jù)交換和共享、易于充分利用數(shù)據(jù)、可用于創(chuàng)造新語(yǔ)言。6.XML與WebServices是有怎樣關(guān)系?答:在WebServices中SOAP、WSDL、UDDI等技術(shù)都是基于XML建立起來(lái),它是WebServices基石。正是因?yàn)閄ML具備跨平臺(tái)、跨語(yǔ)言等特征,才使得WebServices也具備這些特征,成為應(yīng)用集成好幫手。7.試著使用XML語(yǔ)言描述一個(gè)生活中你熟悉事物,并畫出該文檔樹(shù)形圖,同時(shí)寫出對(duì)應(yīng)XMLSchema文檔。解析:這里我們來(lái)描述下某家鞋店鞋子信息,一雙鞋信息能夠包含品名、價(jià)格、尺碼、類別、顏色、材質(zhì)和產(chǎn)地等。鞋子列表信息以下:<?xmlversion="1.0"encoding="UTF-8"?><ShoesList> <shoes> <Name>adidas</Name> <Price>356.5</Price> <Size>42</Size> <Category>Training</Category> <Color>Blue</Color> <Material>Leather</Material> <produceAera>India</produceAera> </shoes> <shoes> <Name>Nike</Name> <Price>342</Price> <Size>45</Size> <Category>Basketball</Category> <Color>White</Color> <Material>Leather</Material> <produceAera>China</produceAera> </shoes></ShoesList>其文檔樹(shù)形圖以下:對(duì)應(yīng)XMLSchema文檔以下:<?xmlversion="1.0"encoding="UTF-8"?><Schema targetNamespace="" xmlns=""/> <elementname="ShoesList"type="ShoesListType"/> <complexTypename="ShoesListType"> <elementname="Shoes"type="ShoesType"/> </complexType> <complexTypename="ShoesType"> <sequence> <elementname="Name"type="string"/> <elementname="Price"type="float"/> <elementname="Size"type="float"/> <elementname="Category"type="string"/> <elementname="Color"type="string"/> <elementname="Material"type="string"/> <elementname="produceArea"type="string"/> </sequence> </complexType></Schema>8.什么是SOAP,它由哪幾個(gè)部分組成?答:簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)是一個(gè)基于XML、輕量級(jí)、跨平臺(tái)分布式系統(tǒng)間信息交換協(xié)議。SOAP主要由四個(gè)部分組成,SOAPEnvelope用于定義一個(gè)描述消息中內(nèi)容、發(fā)送者、接收者、處理者及怎樣處理整體表示框架;SOAP編碼規(guī)則定義了一套編碼機(jī)制用于交換應(yīng)用程序定義數(shù)據(jù)類型實(shí)例;SOAPRPC表示遠(yuǎn)程過(guò)程調(diào)用和應(yīng)答協(xié)定;SOAP綁定定義了一個(gè)使用底層傳輸協(xié)議來(lái)完成在節(jié)點(diǎn)間交換SOAP消息約定。9.嘗試用SOAPXMLSchema編寫一個(gè)列車時(shí)刻信息服務(wù)。該SOAP服務(wù)接收三個(gè)參數(shù):日期、始發(fā)地和終點(diǎn),返回滿足參數(shù)條件全部列車信息(如:列車編號(hào)、始發(fā)地、終點(diǎn)、始發(fā)時(shí)間、抵達(dá)時(shí)間、票價(jià)和余票等)。解析:SOAP請(qǐng)求消息以下:<soap:Envelope xmlns:soap="" soap:encodingStyle="http://www/w3/org//05/soap-encoding"> <soap:body> <t:getTrainInfo xmlns:t=""> <t:startPlace>上海虹橋</t:startPlace> <t:destination>武昌</t:destination> <t:time>/07/18</t:time> </t:getTrainInfo> </soap:body></soap:Envelope>SOAP響應(yīng)消息以下:<soap:Envelope xmlns:soap="" soap:encodingStyle="http://www/w3/org//05/soap-encoding"> <soap:body> <t:getTrainInfoResponse xmlns:t=""> <t:trains> <train> <trainNum>D3052</trainNum> <startPlace>上海虹橋</startPlace> <startTime>-07-1810:54</startTime> <destination>武昌</destination> <reachTime>-07-1816:50</reachTime> <price>254.0</price> <remainder>52</remainder> </train> </t:trains> </t:getTrainInfoResponse> </soap:body></soap:Envelope>10、SOAPWebServices有哪幾個(gè)應(yīng)用模型?答:請(qǐng)求/響應(yīng)模式、fire-and-forget模式、高級(jí)消息模式、增量解析和處理模式、緩存模式。11、簡(jiǎn)述WSDL和UDDI。答:WSDL(WebServicesDescriptionLanguage,Web服務(wù)描述語(yǔ)言)是一個(gè)基于XML、專門用于描述WebServices語(yǔ)言。經(jīng)過(guò)WSDL能夠?qū)Ψ?wù)功效信息、功效參數(shù)消息類型、協(xié)議綁定信息和特定服務(wù)地址信息進(jìn)行描述。UDDI(UniversalDescription、DiscoveryandIntegeration,統(tǒng)一描述、發(fā)覺(jué)和集成)是一套基于Web分布式WebServices信息注冊(cè)中心實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范,也包含一組訪問(wèn)協(xié)議實(shí)現(xiàn)標(biāo)準(zhǔn),使得企業(yè)能將本身WebServices注冊(cè)上去,并讓其余企業(yè)能夠發(fā)覺(jué)并使用這些服務(wù),使服務(wù)更輕易被獲取。為了實(shí)現(xiàn)Web服務(wù)跨平臺(tái)、跨語(yǔ)言和松耦合特征,UDDI也是以XML為基礎(chǔ)。UDDI提供了一個(gè)全球、跨平臺(tái)、開(kāi)發(fā)框架,企業(yè)能夠更具需要公布服務(wù)產(chǎn)品或業(yè)務(wù)流程到注冊(cè)中心中,方便更多認(rèn)識(shí)更多、愈加好合作搭檔,從而拓展企業(yè)業(yè)務(wù)范圍。12、試著使用MyEclipse實(shí)現(xiàn)第9題中列車時(shí)刻信息查詢服務(wù),要求使用JAX-WS開(kāi)發(fā)SOAP型WebServices。注意,從客戶端傳入始發(fā)地、終點(diǎn)和始發(fā)時(shí)間三個(gè)參數(shù),服務(wù)返回滿足要求全部列車時(shí)刻信息。解析:(1)創(chuàng)建實(shí)體類Train,含有屬性trainNum(列車編號(hào))、startPlace(始發(fā)地)、startTime(始發(fā)時(shí)間)、destination(終點(diǎn))、reachTime(抵達(dá)時(shí)間)、price(票價(jià))、remainder(余票)。Train.java代碼以下:publicclassTrain{ privateStringtrainNum; //列車編號(hào) privateStringstartPlace; //始發(fā)地 privateStringstartTime; //始發(fā)時(shí)間 privateStringdestination; //終點(diǎn) privateStringreachTime; //抵達(dá)時(shí)間 privatefloatprice; //票價(jià) privateintremainder; //余票 publicTrain(){ trainNum=""; startPlace=""; startTime=""; destination=""; reachTime=""; price=0; remainder=0; } publicTrain(StringtrainNum,StringstartPlace,StringstartTime, Stringdestination,StringreachTime,floatprice,intremainder){ super(); this.trainNum=trainNum; this.startPlace=startPlace; this.startTime=startTime; this.destination=destination; this.reachTime=reachTime; this.price=price; this.remainder=remainder; } publicStringgetTrainNum(){ returntrainNum; } publicvoidsetTrainNum(StringtrainNum){ this.trainNum=trainNum; } publicStringgetStartPlace(){ returnstartPlace; } publicvoidsetStartPlace(StringstartPlace){ this.startPlace=startPlace; } publicStringgetStartTime(){ returnstartTime; } publicvoidsetStartTime(StringstartTime){ this.startTime=startTime; } publicStringgetDestination(){ returndestination; } publicvoidsetDestination(Stringdestination){ this.destination=destination; } publicStringgetReachTime(){ returnreachTime; } publicvoidsetReachTime(StringreachTime){ this.reachTime=reachTime; } publicfloatgetPrice(){ returnprice; } publicvoidsetPrice(floatprice){ this.price=price; } publicintgetRemainder(){ returnremainder; } publicvoidsetRemainder(intremainder){ this.remainder=remainder; }}(2)創(chuàng)建服務(wù)類CheckTrainWS,為方便起見(jiàn),我們用List<Train>做數(shù)據(jù)庫(kù),其中存有列車時(shí)刻信息。經(jīng)過(guò)將客戶端傳來(lái)三個(gè)需求參數(shù)(startPlace、destination和time)與List<Train>中全部列車時(shí)刻信息相匹配,返回成功匹配列車信息。CheckTrainWS.java代碼以下:@WebServicepublicclassCheckTrainWS{ privateList<Train>trainList=newArrayList<Train>();//列車時(shí)刻表 //初始化列車時(shí)刻表 publicCheckTrainWS(){ Traint=newTrain("D3052","上海虹橋","/07/1810:54","武昌","/07/1816:50",254,52); trainList.add(t); Traint1=newTrain("D56","上海虹橋","/07/1811:10","杭州","/07/1813:50",152,30); trainList.add(t1); Traint2=newTrain("G423","北京西","/07/1814:05","廣州","/07/1820:30",856,75); trainList.add(t2); Traint3=newTrain("G4982","上海虹橋","/07/1814:05","杭州","/07/1815:10",208,15); trainList.add(t3); } //查詢服務(wù) @WebMethod publicList<Train>checkTrain(StringstartPlace,Stringdestination,Stringtime){ List<Train>resultList=newArrayList<Train>(); Traintemp=newTrain(); for(inti=0;i<trainList.size();++i){ temp=trainList.get(i); if(temp.getStartPlace().equals(startPlace)&&temp.getDestination().equals(destination)&& temp.getStartTime().startsWith(time)){ resultList.add(temp); } } returnresultList; }}(3)完成服務(wù)端建立后,能夠創(chuàng)建客戶端CheckTrainPollingClient。注意,客戶端需要傳入三個(gè)參數(shù)(startPlace、destination和time),且這里采取異步方式。CheckTrainPollingClient.java代碼以下:publicclassCheckTrainPollingClient{ publicstaticvoidmain(String[]args){ CheckTrainWSServiceservice=newCheckTrainWSService(); CheckTrainWSDelegateport=service.getCheckTrainWSPort(); //調(diào)用服務(wù),并出入需求參數(shù) Response<CheckTrainResponse>checkTrainAsync=port.checkTrainAsync("上海虹橋","杭州","/07/18"); while(!checkTrainAsync.isDone()){ System.out.println("isnotdone"); } List<Train>rtnList=newArrayList<Train>(); try{ CheckTrainResponsecheckTrainResponse=checkTrainAsync.get(); //獲取列車時(shí)刻信息返回列表 rtnList=checkTrainResponse.getReturn(); //遍歷并打印列表 if(rtnList.size()!=0){ System.out.println("共有\(zhòng)""+rtnList.size()+"\"趟列車:"); System.out.println("列車編號(hào)\t\t始發(fā)地\t\t始發(fā)時(shí)間\t\t\t終點(diǎn)\t\t到站時(shí)間\t\t票價(jià)\t\t余票"); for(Traini:rtnList){ System.out.println(i.getTrainNum()+"\t\t"+i.getStartPlace()+"\t\t"+i.getStartTime()+ "\t"+i.getDestination()+"\t"+i.getReachTime()+"\t"+i.getPrice()+"\t\t"+i.getRemainder()); } }else{ System.out.println("Sorry,沒(méi)有滿足您需求列車!"); } }catch(Exceptionex){ ex.printStackTrace(); } }}(4)假如,客戶端傳入?yún)?shù)為:"上海虹橋","杭州","/07/18",則返回信息以下列圖所表示:13、簡(jiǎn)述什么REST,它有哪些特點(diǎn)?答:REST(RepresentationalStateTransfer,表述性狀態(tài)轉(zhuǎn)移)是一個(gè)全新對(duì)Web應(yīng)用和開(kāi)發(fā)方式理念,它將Web中全部事物都抽象為資源,并使用URI唯一標(biāo)識(shí),以降低開(kāi)發(fā)復(fù)雜性、提升系統(tǒng)可伸縮性。 REST特點(diǎn)包含:顯示、充分地利用HTTP協(xié)議;全部應(yīng)用程序操作都是無(wú)狀態(tài);將網(wǎng)絡(luò)上全部事物都抽象為資源,采取公開(kāi)目錄結(jié)構(gòu)式URI唯一標(biāo)識(shí)這些資源;對(duì)資源各種操作不會(huì)改變資源標(biāo)識(shí)(URI);采取通用連接器接口對(duì)資源進(jìn)行訪問(wèn);使用XML或JASON傳輸數(shù)據(jù)格式、跨平臺(tái)性好。14、簡(jiǎn)述REST工作原理。答:REST理念是將應(yīng)用中全部事物都抽象為資源,并用URI來(lái)標(biāo)識(shí)每個(gè)資源,其中一個(gè)資源能夠由多個(gè)URI來(lái)定位,但一個(gè)URI只能標(biāo)識(shí)一個(gè)資源。REST將HTTP中GET、POST、PUT和DELETE與資源慣用操作讀取、添加、更新和刪除相對(duì)應(yīng),充分利用了HTTP協(xié)議,使開(kāi)發(fā)服務(wù)具備更低耦合性。15、試著使用MyEclipse將第9題中列車信息查詢服務(wù),改寫為RESTWebServices。解析:(1)將列車時(shí)刻查詢服務(wù)改為REST型關(guān)鍵是怎樣把查詢操作抽象為資源,并用URI表示。對(duì)普通客戶而言,“查詢”列車時(shí)刻信息通常只有“讀取”操作,不允許修改和添加等操作。所以,我們選取HTTPGET與讀取操作映射。同時(shí),制訂三種URI來(lái)定義三種查詢操作,第一個(gè)為http://loacalhost:8080/CheckTrainREST/services/trains/{startPlace},表示查詢從startPlace站始發(fā)全部列車時(shí)刻信息;第二種為http://loacalhost:8080/CheckTrainREST/services/trains/{startPlace}/{destination}表示從startPlace始發(fā),開(kāi)往destination全部列車時(shí)刻信息;第三種為http://loacalhost:8080/CheckTrainREST/services/trains/{startPlace}/{destination}/{time},表示在time指定日期中,表示從startPlace始發(fā),開(kāi)往destination全部列車時(shí)刻信息。(2)建立REST服務(wù)資源類TrainsResource,為簡(jiǎn)化操作,也使用List<Train>做數(shù)據(jù)庫(kù),存放列車時(shí)刻信息,返回列車時(shí)刻信息用XML格式表示。TrainsResource.java代碼以下:@Produces("application/xml")@Path("trains")@SingletonpublicclassTrainsResource{ //列車信息列表 privateList<Train>trainList=newArrayList<Train>(); publicTrainsResource(){ Traint=newTrain("D3052","上海虹橋","-07-1810:54","武昌","-07-1816:50",254,52); trainList.add(t); Traint1=newTrain("D56","上海虹橋","-07-1811:10","杭州","-07-1813:50",152,30); trainList.add(t1); Traint2=newTrain("G423","北京西","-07-1814:05","廣州","-07-1820:30",856,75); trainList.add(t2); Traint3=newTrain("G4982","上海虹橋","-07-1814:05","杭州","-07-1815:10",208,15); trainList.add(t3); Traint4=newTrain("K369","上海虹橋","-07-1907:35","合肥","-07-1914:30",175,28); trainList.add(t4); Traint5=newTrain("G948","廣州","-07-2016:40","深圳","-07-2017:20",108,40); trainList.add(t5); } //返回startPlace站點(diǎn)始發(fā)全部列車信息 @GET @Path("{startPlace}") publicList<Train>getStationTrians( @PathParam("startPlace")StringtStartPlace){ List<Train>resultList=newArrayList<Train>(); Traintemp=newTrain(); for(inti=0;i<trainList.size();++i){ temp=trainList.get(i); if(temp.getStartPlace().equals(tStartPlace)){ resultList.add(temp); } } returnresultList; } //返回startPlace-->destination航線全部列車信息 @GET @Path("{startPlace}/{destination}") publicList<Train>getLineTrains( @PathParam("startPlace")StringtStartPlace, @PathParam("destination")StringtDestination){ List<Train>resultList=newArrayList<Train>(); Traintemp=newTrain(); for(inti=0;i<trainList.size();++i){ temp=trainList.get(i); if(temp.getStartPlace().equals(tStartPlace)&&temp.getDestination().equals(tDestination)){ resultList.add(temp); } } returnresultList; } //返回startPlace-->destination航線在指定time日期中全部列車信息 @GET @Path("{startPlace}/{destination}/{time}") publicList<Train>getLineTimeTrains(@PathParam("startPlace")StringtStartPlace, @PathParam("destination")StringtDestination, @PathParam("time")StringtTime){ List<Train>resultList=newArrayList<Train>(); Traintemp=newTrain(); for(inti=0;i<trainList.size();++i){ temp=trainList.get(i); if(temp.getStartPlace().equals(tStartPlace)&&temp.getDestination().equals(tDestination)&& temp.getStartTime().startsWith(tTime)){ resultList.add(temp); } } returnresultList; }}(3)完成服務(wù)建立,并布署和公布后,能夠開(kāi)啟TestwithRESTWebServicesExplorer測(cè)試服務(wù)。先測(cè)試某站始發(fā)全部列車信息,如輸入“上海虹橋”,則返回上海虹橋站始發(fā)全部列車時(shí)刻信息,以下如所表示:接著測(cè)試從“上海虹橋”站到“杭州”站全部列車時(shí)刻信息,以下列圖所表示: 最終,測(cè)試“-07-20”從“廣州”到“深圳”全部列車信息,以下列圖所表示:第8章云計(jì)算原理與技術(shù)略,參考各章節(jié)內(nèi)容第9章云計(jì)算模擬編程實(shí)踐略,參考各章節(jié)內(nèi)容第10章云存放技術(shù)1. 參考11.1.12. 參考11.1.23. 參考11.1.34. 參考11.1.45. 參考11.2.16. 參考11.47. 參考11.38. 參考11.2.29. 參考11.5及其余文件第11章大數(shù)據(jù)技術(shù)與實(shí)踐簡(jiǎn)述大數(shù)據(jù)定義及其它特征。答:大數(shù)據(jù)并沒(méi)有統(tǒng)一定義,不過(guò)通常它是指所處理數(shù)據(jù)規(guī)模巨大到無(wú)法經(jīng)過(guò)現(xiàn)在主流數(shù)據(jù)庫(kù)軟件工具,在能夠接收時(shí)間內(nèi)完成抓取、儲(chǔ)存、管理和分析,并從中提取出人類能夠了解資訊。4V特征:第一個(gè)特征Volume是數(shù)據(jù)體量巨大。第二個(gè)特征Variety:數(shù)據(jù)類型繁多。非結(jié)構(gòu)和半結(jié)構(gòu)數(shù)據(jù)正是大數(shù)據(jù)處理難點(diǎn)所在。第三個(gè)特征Velocity:處理速度快,時(shí)效性強(qiáng)。最終一個(gè)特征是Value:商業(yè)價(jià)值高,不過(guò)價(jià)值密度低。單個(gè)數(shù)據(jù)價(jià)值很低,只有大量數(shù)據(jù)聚合起來(lái)處理才能借助歷史數(shù)據(jù)預(yù)測(cè)未來(lái)走勢(shì),表現(xiàn)出大數(shù)據(jù)計(jì)算價(jià)值所在。思索:HDFS體系結(jié)構(gòu)是否存在其不足或瓶頸。采取Master-Slave結(jié)構(gòu),必定會(huì)存在單點(diǎn)故障問(wèn)題與NameNode性能瓶頸問(wèn)題。其余更詳細(xì)請(qǐng)讀者補(bǔ)充。HDFS中為何默認(rèn)副本數(shù)為3?答:副本數(shù)為3集群中,將一個(gè)副本保留到當(dāng)?shù)貦C(jī)架1一個(gè)節(jié)點(diǎn)1上,第二個(gè)副本保留到當(dāng)?shù)貦C(jī)架一個(gè)節(jié)點(diǎn)2上,第三個(gè)副本由節(jié)點(diǎn)2傳輸復(fù)制到遠(yuǎn)程機(jī)架2節(jié)點(diǎn)3上。把三分之二副本儲(chǔ)存在當(dāng)?shù)貦C(jī)架,把三分之一副本儲(chǔ)存在遠(yuǎn)程機(jī)架。這么做既確保了數(shù)據(jù)可靠性,又節(jié)約了機(jī)架之間網(wǎng)絡(luò)帶寬。一整個(gè)機(jī)架瓦解概率很顯著遠(yuǎn)遠(yuǎn)低于單個(gè)節(jié)點(diǎn)瓦解概率。一個(gè)機(jī)架瓦解了能夠由另一機(jī)架確保數(shù)據(jù)可用性。HBase是怎樣實(shí)現(xiàn)隨機(jī)快速存取數(shù)據(jù)?為何要HBASE在創(chuàng)建表時(shí)只需要定義列族,列族是怎樣存放?隨機(jī)寫入:HBase底層存放是采取了一個(gè)keyvalue文件結(jié)構(gòu),稱作hfile來(lái)實(shí)現(xiàn);HBase隨機(jī)寫入并不是立刻寫入HDFS;而是先寫入內(nèi)存memstore,當(dāng)memstore達(dá)成一定閥值后才會(huì)寫入HDFS;而且HBase后臺(tái)合并機(jī)制,將memstore寫入到HDFS小文件合并成大文件;隨機(jī)刪除:HBase中刪除數(shù)據(jù)并不是立刻刪除,而只是在數(shù)據(jù)上做好標(biāo)識(shí),然后再下一次合并操作時(shí)候進(jìn)行清理。隨機(jī)讀?。篐Base在存放數(shù)據(jù)時(shí)在一個(gè)hfile中只存放同一列族數(shù)據(jù),而且數(shù)據(jù)時(shí)按Rowkey排序,所以在讀取數(shù)據(jù)時(shí)只需要依照Rowkey跳轉(zhuǎn)到指定行就讀取數(shù)據(jù)。HBase尤其擅長(zhǎng)是對(duì)于同一列族次序讀取,所以隨機(jī)小數(shù)據(jù)量讀取即使可行,不過(guò)性能遠(yuǎn)遠(yuǎn)不如次序讀取。Cassandra中超級(jí)列族與超級(jí)列與HBase中列族和列有什么區(qū)分和聯(lián)絡(luò)?超級(jí)列(supercolumn)是一個(gè)特殊列。兩種列都是名/值對(duì),不過(guò)普通列值是字節(jié)數(shù)組,而超級(jí)列值是一個(gè)子列映射。超級(jí)列不能存放其余超級(jí)列映射,即超級(jí)列僅允許使用一層,不過(guò)它不限制列數(shù)量。超級(jí)列族概念上和普通列族相同,只不過(guò)它是超級(jí)列集合。Cassandra提供了怎樣可供用戶選擇一致性級(jí)別?寫一致性假如是向Cassandra寫數(shù)據(jù),一致性級(jí)別指定了必須寫多少個(gè)副本成功后再返回給客戶端應(yīng)用。寫能夠使用以下一致性級(jí)別,ANY是最低一致性(但可用性最高),ALL是最高一致性(但可用性最低),QUORUM是中間可確保強(qiáng)一致性,能夠容忍一定程度故障。ANY 最少一個(gè)節(jié)點(diǎn)響應(yīng)寫操作。假如請(qǐng)求rowkey對(duì)應(yīng)全部副本節(jié)點(diǎn)都停頓了,接收到請(qǐng)求節(jié)點(diǎn)會(huì)統(tǒng)計(jì)HINT消息和請(qǐng)求數(shù)據(jù),然后響應(yīng)寫成功。在rowkey對(duì)應(yīng)全部副本節(jié)點(diǎn)最少有一個(gè)開(kāi)啟之前,全部讀rowkey會(huì)失敗。而且HINT消息只保留一段時(shí)間,假如在這段時(shí)間內(nèi)全部副本節(jié)點(diǎn)還不可用,則數(shù)據(jù)會(huì)丟失。ONE 集群中最少有1個(gè)副本節(jié)點(diǎn)寫成功。TWO 集群中最少有2個(gè)副本節(jié)點(diǎn)寫成功。THREE 集群中最少有3個(gè)副本節(jié)點(diǎn)寫成功。QUORUM 集群中最少有quorum個(gè)副本節(jié)點(diǎn)寫成功.quorum=(各數(shù)據(jù)中心副本因子之和)/2+1,假如2個(gè)數(shù)據(jù)中心,1個(gè)數(shù)據(jù)中副本因子3,1個(gè)數(shù)據(jù)中心副本因子是2,quorum=(3+2)/2+1=3LOCAL_QUORUM 集群中同1個(gè)數(shù)據(jù)中心最少有quorum個(gè)副本節(jié)點(diǎn)寫成功。quorum=(本數(shù)據(jù)中心副本因子)/2+1,假如接收請(qǐng)求節(jié)點(diǎn)所在數(shù)據(jù)中心副本因子是2,則quorum=(2)/2+1=2EACH_QUORUM 集群中每個(gè)數(shù)據(jù)中心最少有quorum個(gè)副本節(jié)點(diǎn)寫成功。quorum計(jì)算同LOCAL_QUORUM。ALL 集群中全部副本節(jié)點(diǎn)寫成功。讀一致性假如是向Cassandra讀數(shù)據(jù),一致性級(jí)別指定了必須多少個(gè)副本響應(yīng)后再返回給客戶端應(yīng)用結(jié)果。ONE 返回集群最近副本(決定于snitch)響應(yīng)。TWO 返回集群里2個(gè)最近副本中最新數(shù)據(jù)。THREE 返回集群里3個(gè)最近副本中最新數(shù)據(jù)。QUORUM 返回集群里quorum個(gè)副本中最新數(shù)據(jù)。quorum=(各數(shù)據(jù)中心副本因子之和)/2+1,假如2個(gè)數(shù)據(jù)中心,1個(gè)數(shù)據(jù)中副本因子3,1個(gè)數(shù)據(jù)中心副本因子是2,quorum=(3+2)/2+1=3LOCAL_QUORUM 返回集群里當(dāng)前數(shù)據(jù)中心quorum個(gè)副本中最新數(shù)據(jù)。quorum=(本數(shù)據(jù)中心副本因子)/2+1,假如接收請(qǐng)求節(jié)點(diǎn)所在數(shù)據(jù)中心副本因子是2,則quorum=(2)/2+1=2EACH_QUORUM 返回集群中每個(gè)數(shù)據(jù)中心最少有quorum個(gè)副本中最新數(shù)據(jù)。quorum計(jì)算同LOCAL_QUORUM。ALL 返回集群中全部副本中最新數(shù)據(jù)。Redis數(shù)據(jù)類型是怎樣?是否像HBase一樣是Key-Value形式?Redis并不是簡(jiǎn)單key-value存放,實(shí)際上他是一個(gè)數(shù)據(jù)結(jié)構(gòu)服務(wù)器,支持不一樣類型值。也就是說(shuō),你無(wú)須僅僅把字符串看成鍵所指向值。以下這些數(shù)據(jù)類型都可作為值類型。字符串(string)、列表(list)、集合(set)、有序集合(ortedset)、希表(hash)。String是最基本一個(gè)數(shù)據(jù)類型,普通key/value存放都能夠歸為這類。List類型其實(shí)就是一個(gè)每個(gè)子元素都是String類型雙向鏈表。Set是String類型無(wú)序集合。Sortedset和set一樣也是string類型元素集合,不一樣是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型score。Hash是一個(gè)string類型field和value映射表.它添加,刪除操作都是O(1)(平均).hash尤其適適用于存放對(duì)象。Redis提供了哪兩種分布式模型?讀寫分離模型:傳統(tǒng)Master與Slave模式。數(shù)據(jù)分片模型:將每個(gè)節(jié)點(diǎn)看成都是獨(dú)立master,然后經(jīng)過(guò)業(yè)務(wù)實(shí)現(xiàn)數(shù)據(jù)分片。結(jié)合上面兩種模型,能夠?qū)⒚總€(gè)master設(shè)計(jì)成由一個(gè)master和多個(gè)slave組成模型。MongoDB數(shù)據(jù)組織形式是怎樣?它特點(diǎn)與應(yīng)用場(chǎng)景是怎樣?MongoDB組織數(shù)據(jù)方式以下:Key-Value對(duì)>文檔>集合>數(shù)據(jù)庫(kù)多個(gè)Key-Value對(duì)組織起來(lái)形成類似于JSON格式文檔,多個(gè)文檔組織成為一個(gè)集合,多個(gè)集合組織起來(lái),就形成了數(shù)據(jù)庫(kù)(database)。單個(gè)MongoDB實(shí)例能夠使用多個(gè)數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)庫(kù)都是獨(dú)立運(yùn)作,能夠有單獨(dú)權(quán)限,每個(gè)數(shù)據(jù)庫(kù)數(shù)據(jù)被分開(kāi)保留在不一樣文件里。適用范圍:適合實(shí)時(shí)插入,更新與查詢,并具備應(yīng)用程序?qū)崟r(shí)數(shù)據(jù)存放所需復(fù)制及高度伸縮性。適合作為信息基礎(chǔ)設(shè)施持久化緩存層。適合由數(shù)十或數(shù)百臺(tái)服務(wù)器組成數(shù)據(jù)庫(kù)。因?yàn)镸o
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電器類專業(yè)知識(shí)培訓(xùn)課件
- 2024無(wú)限連帶責(zé)任擔(dān)保書與人工智能產(chǎn)業(yè)項(xiàng)目投資合同3篇
- 2024版使用權(quán)轉(zhuǎn)讓合同范文
- 2024年鐵路機(jī)車車輛制造安全合同3篇
- 2025年度土地整治與開(kāi)發(fā)承包終止合同范本3篇
- 鄭州商學(xué)院《移動(dòng)應(yīng)用交互設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年餐廳全權(quán)承包經(jīng)營(yíng)合同模板版B版
- 2024版粉刷合同簡(jiǎn)單協(xié)議書
- 2024智慧城市生態(tài)建設(shè)合同
- 車輛設(shè)計(jì)師汽車外觀車身結(jié)構(gòu)
- 2024年公務(wù)員考試《公共基礎(chǔ)知識(shí)》全真模擬試題1000題及答案
- 2024年黑龍江省《輔警招聘考試必刷500題》考試題庫(kù)附答案(滿分必刷)
- 2025年初級(jí)會(huì)計(jì)職稱《經(jīng)濟(jì)法基礎(chǔ)》全真模擬及答案(解析3套)
- 期末復(fù)習(xí)試題(試題)-2024-2025學(xué)年五年級(jí)上冊(cè)數(shù)學(xué)蘇教版
- 河北省石家莊市2023-2024學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 2024 ESC心房顫動(dòng)管理指南解讀-第二部分
- 小學(xué)科學(xué)說(shuō)課稿:《水能溶解一些物質(zhì)》說(shuō)課稿
- 國(guó)家八年級(jí)數(shù)學(xué)質(zhì)量測(cè)試題(六套)
- 3勞務(wù)分包商動(dòng)態(tài)評(píng)價(jià)管理制度
- 市場(chǎng)發(fā)展部崗位職責(zé)
- 《水利水電工程施工監(jiān)理規(guī)范SL288-2021表格》2021年1月更新
評(píng)論
0/150
提交評(píng)論