消息中間件及MQ基礎(chǔ).docx_第1頁(yè)
消息中間件及MQ基礎(chǔ).docx_第2頁(yè)
消息中間件及MQ基礎(chǔ).docx_第3頁(yè)
消息中間件及MQ基礎(chǔ).docx_第4頁(yè)
消息中間件及MQ基礎(chǔ).docx_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余2頁(yè)可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、消息中間件及WebSphere MQ消息中間件概述消息隊(duì)列技術(shù)是分布式應(yīng)用間交換信息的一種技術(shù)。消息隊(duì)列可駐留在內(nèi)存或磁盤上,隊(duì)列存儲(chǔ)消息直到它們被應(yīng)用程序讀走。通過消息隊(duì)列,應(yīng)用程序可獨(dú)立地執(zhí)行-它們不需要知道彼此的位置、或在繼續(xù)執(zhí)行前不需要等待接收程序接收此消息。在分布式計(jì)算環(huán)境中,為了集成分布式應(yīng)用,開發(fā)者需要對(duì)異構(gòu)網(wǎng)絡(luò)環(huán)境下的分布式應(yīng)用提供有效的通信手段。為了管理需要共享的信息,對(duì)應(yīng)用提供公共的信息交換機(jī)制是重要的。設(shè)計(jì)分布式應(yīng)用的方法主要有:遠(yuǎn)程過程調(diào)用(PRC)- 分布式計(jì)算環(huán)境(DCE) 的基礎(chǔ)標(biāo)準(zhǔn)成分之一;對(duì)象事務(wù)監(jiān)控(OTM)-基于 CORBA的面向?qū)ο蠊I(yè)標(biāo)準(zhǔn)與事務(wù)處理(T

2、P) 監(jiān)控技術(shù)的組合;消息隊(duì)列(MessageQueue)-構(gòu)造分布式應(yīng)用的松耦合方法。(a) 分布計(jì)算環(huán)境 /遠(yuǎn)程過程調(diào)用 (DCE/RPC)RPC 是 DCE 的成分, 是一個(gè)由開放軟件基金會(huì)(OSF) 發(fā)布的應(yīng)用集成的軟件標(biāo)準(zhǔn)。RPC 模仿一個(gè)程序用函數(shù)引用來引用另一程序的傳統(tǒng)程序設(shè)計(jì)方法,此引用是過程調(diào)用的形式,一旦被調(diào)用,程序的控制則轉(zhuǎn)向被調(diào)用程序。在 RPC 實(shí)現(xiàn)時(shí),被調(diào)用過程可在本地或遠(yuǎn)地的另一系統(tǒng)中駐留并在執(zhí)行。當(dāng)被調(diào)用程序完成處理輸入數(shù)據(jù),結(jié)果放在過程調(diào)用的返回變量中返回到調(diào)用程序。RPC 完成后程序控制則立即返回到調(diào)用程序。因此RPC 模仿子程序的調(diào)用/返回結(jié)構(gòu),它僅提供了

3、Client( 調(diào)用程序 ) 和 Server( 被調(diào)用過程 ) 間的同步數(shù)據(jù)交換。(b) 對(duì)象事務(wù)監(jiān)控(OTM)基于CORBA的面向?qū)ο蠊I(yè)標(biāo)準(zhǔn)與事務(wù)處理(TP) 監(jiān)控技術(shù)的組合,在CORBA規(guī)范中定義了:使用面向?qū)ο蠹夹g(shù)和方法的體系結(jié)構(gòu);公共的Client/Server程序設(shè)計(jì)接口;多平臺(tái)間傳輸和翻譯數(shù)據(jù)的指導(dǎo)方針;開發(fā)分布式應(yīng)用接口的語言(IDL) 等,并為構(gòu)造分布的Client/Server應(yīng)用提供了廣泛及一致的模式。(c) 消息隊(duì)列(Message Queue)消息隊(duì)列為構(gòu)造以同步或異步方式實(shí)現(xiàn)的分布式應(yīng)用提供了松耦合方法。消息隊(duì)列的API 調(diào)用被嵌入到新的或現(xiàn)存的應(yīng)用中,通過消息發(fā)

4、送到內(nèi)存或基于磁盤的隊(duì)列或從它讀出而提供信息交換。消息隊(duì)列可用在應(yīng)用中以執(zhí)行多種功能,比如要求服務(wù)、交換信息或異步處理等。中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用系統(tǒng)借助這種軟件在不同的技術(shù)之間共享資源,管理計(jì)算資源和網(wǎng)絡(luò)通訊。計(jì)算機(jī)系統(tǒng)中是一個(gè)關(guān)鍵它在軟件,它能實(shí)現(xiàn)應(yīng)用的互連和互操作性,能保證系統(tǒng)的安全、可靠、高效的運(yùn)行。中間件位于用戶應(yīng)用和操作系統(tǒng)及網(wǎng)絡(luò)軟件之間,它為應(yīng)用提供了公用的通信手段,并且獨(dú)立于網(wǎng)絡(luò)和操作系統(tǒng)。中間件為開發(fā)者提供了公用于所有環(huán)境的應(yīng)用程序接口,當(dāng)應(yīng)用程序中嵌入其函數(shù)調(diào)用,它便可利用其運(yùn)行的特定操作系統(tǒng)和網(wǎng)絡(luò)環(huán)境的功能,為應(yīng)用執(zhí)行通信功能。如果沒有消息中間件完

5、成信息交換, 應(yīng)用開發(fā)者為了傳輸數(shù)據(jù), 必須要學(xué)會(huì)如何用網(wǎng)絡(luò)和操作系統(tǒng)軟件的功能, 編寫相應(yīng)的應(yīng)用程序來發(fā)送和接收信息,且交換信息沒有標(biāo)準(zhǔn)方法,每個(gè)應(yīng)用必須進(jìn)行特定的編程從而和多平臺(tái)、不同環(huán)境下的一個(gè)或多個(gè)應(yīng)用通信。例如,為了實(shí)現(xiàn)網(wǎng)絡(luò)上不同主機(jī)系統(tǒng)間的通信,將要求具備在網(wǎng)絡(luò)上如何交換信息的知識(shí)(比如用 TCP/IP 的 socket 程序設(shè)計(jì));為了實(shí)現(xiàn)同一主機(jī)內(nèi)不同進(jìn)程之間的通訊,將要求具備操作系統(tǒng)的消息隊(duì)列或命名管道(Pipes) 等知識(shí)。目前中間件的種類很多,如交易管理中間件(如 IBM 的 CICS) 、面向Java 應(yīng)用的 Web 應(yīng)用服務(wù)器中間件(如 IBM 的 WebSphere

6、Application Server)等,而消息傳輸中間件 (MOM) 是其中的一種。它簡(jiǎn)化了應(yīng)用之間數(shù)據(jù)的傳輸,屏蔽底層異構(gòu)操作系統(tǒng)和網(wǎng)絡(luò)平臺(tái),提供一致的通訊標(biāo)準(zhǔn)和應(yīng)用開發(fā),確保分布式計(jì)算網(wǎng)絡(luò)環(huán)境下可靠的、跨平臺(tái)的信息傳輸和數(shù)據(jù)交換。它基于消息隊(duì)列的存儲(chǔ)-轉(zhuǎn)發(fā)機(jī)制,并提供特有的異步傳輸機(jī)制,能夠基于消息傳輸和異步事務(wù)處理實(shí)現(xiàn)應(yīng)用整合與數(shù)據(jù)交換。IBM消息中間件MQ 以其獨(dú)特的安全機(jī)制、簡(jiǎn)便快速的編程風(fēng)格、卓越不凡的穩(wěn)定性、可擴(kuò)展性和跨平臺(tái)性,以及強(qiáng)大的事務(wù)處理能力和消息通訊能力,成為業(yè)界市場(chǎng)占有率最高的消息中間件產(chǎn)品。MQ具有強(qiáng)大的跨平臺(tái)性,它支持的平臺(tái)數(shù)多達(dá)35 種。它支持各種主流Unix

7、操作系統(tǒng)平臺(tái),如:HP-UX 、AIX 、SUN Solaris、Digital UNIX、Open VMX、SUNOS、NCR UNIX;支持各種主機(jī)平臺(tái),如:OS/390 、 MVS/ESA 、 VSE/ESA;同樣支持Windows NT服務(wù)器。在PC 平臺(tái)上支持Windows9X/Windows NT/Windows 2000和UNIX (UnixWare、Solaris) 以及主要的Linux版本 (Redhat 、TurboLinux等)。此外,MQ還支持其他各種操作系統(tǒng)平臺(tái),如:OS/2、AS/400、Sequent DYNIX、 SCO OpenServer、 SCO Unix

8、Ware、 Tandem等。MQ 的基本概念:1) 隊(duì)列管理器隊(duì)列管理器是MQ 系統(tǒng)中最上層的一個(gè)概念,由它為我們提供基于隊(duì)列的消息服務(wù)。2) 消息在 MQ 中,我們把應(yīng)用程序交由 MQ 傳輸?shù)臄?shù)據(jù)定義為消息,我們可以定義消息的內(nèi)容并對(duì)消息進(jìn)行廣義的理解,比如:用戶的各種類型的數(shù)據(jù)文件,某個(gè)應(yīng)用向其它應(yīng)用發(fā)出的處理請(qǐng)求等都可以作為消息。消息有兩部分組成:消息描述符 (Message Discription或 Message Header),描述消息的特征,如:消息的優(yōu)先級(jí)、生命周期、消息Id 等;消息體 (Message Body),即用戶數(shù)據(jù)部分。在MQ 中,消息分為兩種類型,非永久性(no

9、n-persistent)消息和永久性 (persistent)非永久性消息是存儲(chǔ)在內(nèi)存中的,它是為了提高性能而設(shè)計(jì)的,當(dāng)系統(tǒng)掉電或MQ 隊(duì)列管理器重新啟動(dòng)時(shí),將不可恢復(fù)。當(dāng)用戶對(duì)消息的可靠性要求不高,而側(cè)重系統(tǒng)的性能表現(xiàn)時(shí),可以消息,采用該種類型的消息,如:當(dāng)發(fā)布股票信息時(shí),由于股票信息是不斷更新的,我們可能每若干秒就會(huì)發(fā)布一次,新的消息會(huì)不斷覆蓋舊的消息。永久性消息是存儲(chǔ)在硬盤上,并且紀(jì)錄數(shù)據(jù)日志的,它具有高可靠性,在網(wǎng)絡(luò)和系統(tǒng)發(fā)生故障等情況下都能確保消息不丟、不重。此外,在 MQ 中,還有邏輯消息和物理消息的概念。利用邏輯消息和物理消息,我們可以將大消息進(jìn)行分段處理,也可以將若干個(gè)本身完

10、整的消息在應(yīng)用邏輯上歸為一組進(jìn)行處理。3) 隊(duì)列隊(duì)列是消息的安全存放地,隊(duì)列存儲(chǔ)消息直到它被應(yīng)用程序處理。消息隊(duì)列以下述方式工作:a) 程序 A 形成對(duì)消息隊(duì)列系統(tǒng)的調(diào)用,此調(diào)用告知消息隊(duì)列系統(tǒng),消息準(zhǔn)備好了投向程序B ;b) 消息隊(duì)列系統(tǒng)發(fā)送此消息到程序B 駐留處的系統(tǒng),并將它放到程序B 的隊(duì)列中;c) 適當(dāng)時(shí)間后,程序 B 從它的隊(duì)列中讀此消息,并處理此信息。由于采用了先進(jìn)的程序設(shè)計(jì)思想以及內(nèi)部工作機(jī)制,MQ能夠在各種網(wǎng)絡(luò)條件下保證消息的可靠傳遞,可以克服網(wǎng)絡(luò)線路質(zhì)量差或不穩(wěn)定的現(xiàn)狀,在傳輸過程中,如果通信線路出現(xiàn)故障或遠(yuǎn)端的主機(jī)發(fā)生故障,本地的應(yīng)用程序都不會(huì)受到影響,可以繼續(xù)發(fā)送數(shù)據(jù),而

11、無需等待網(wǎng)絡(luò)故障恢復(fù)或遠(yuǎn)端主機(jī)正常后再重新運(yùn)行。在 MQ 中,隊(duì)列分為很多種類型,其中包括:本地隊(duì)列、遠(yuǎn)程隊(duì)列、模板隊(duì)列、動(dòng)態(tài)隊(duì)列、別名隊(duì)列等。本地隊(duì)列又分為普通本地隊(duì)列和傳輸隊(duì)列,普通本地隊(duì)列是應(yīng)用程序通過 API 對(duì)其進(jìn)行讀寫操作的隊(duì)列;傳輸隊(duì)列可以理解為存儲(chǔ) -轉(zhuǎn)發(fā)隊(duì)列,比如:我們將某個(gè)消息交給MQ 系統(tǒng)發(fā)送到遠(yuǎn)程主機(jī),而此時(shí)網(wǎng)絡(luò)發(fā)生故障,MQ 將把消息放在傳輸隊(duì)列中暫存,當(dāng)網(wǎng)絡(luò)恢復(fù)時(shí),再發(fā)往遠(yuǎn)端目的地。遠(yuǎn)程隊(duì)列是目的隊(duì)列在本地的定義,它類似一個(gè)地址指針,指向遠(yuǎn)程主機(jī)上的某個(gè)目的隊(duì)列,它僅僅是個(gè)定義,不真正占用磁盤存儲(chǔ)空間。模板隊(duì)列和動(dòng)態(tài)隊(duì)列是 MQ 的一個(gè)特色,它的一個(gè)典型用途是用作系

12、統(tǒng)的可擴(kuò)展性考慮。我們可以創(chuàng)建一個(gè)模板隊(duì)列,當(dāng)今后需要新增隊(duì)列時(shí),每打開一個(gè)模板隊(duì)列, MQ 便會(huì)自動(dòng)生成一個(gè)動(dòng)態(tài)隊(duì)列,我們還可以指定該動(dòng)態(tài)隊(duì)列為臨時(shí)隊(duì)列或者是永久隊(duì)列,若為臨時(shí)隊(duì)列我們可以在關(guān)閉它的同時(shí)將它刪除,相反,若為永久隊(duì)列,我們可以將它永久保留,為我所用。4) 通道通道是 MQ 系統(tǒng)中隊(duì)列管理器之間傳遞消息的管道,它是建立在物理的網(wǎng)絡(luò)連接之上的一個(gè)邏輯概念,也是MQ 產(chǎn)品的精華。在 MQ 中,主要有三大類通道類型, 即消息通道, MQI 通道和 Cluster 通道。消息通道是用于在 MQ 的服務(wù)器和服務(wù)器之間傳輸消息的,需要強(qiáng)調(diào)指出的是,該通道是單向的,它又有發(fā)送(sender),

13、接收 (receive),請(qǐng)求者 (requestor),服務(wù)者 (server) 等不同類型,供用戶在不同情況下使用。MQI通道是MQ Client和MQ Server之間通訊和傳輸消息用的,與消息通道不同,它的傳輸是雙向的。群集(Cluster)通道是位于同一個(gè)MQ群集內(nèi)部的隊(duì)列管理器之間通訊使用的。MQ 的工作原理如圖所示:首先來看本地通訊的情況,應(yīng)用程序A 和應(yīng)用程序B 運(yùn)行于同一系統(tǒng)A ,它們之間可以借助消息隊(duì)列技術(shù)進(jìn)行彼此的通訊:應(yīng)用程序A向隊(duì)列 1 發(fā)送一條信息,而當(dāng)應(yīng)用程序 B 需要時(shí)就可以得到該信息。其次是遠(yuǎn)程通訊的情況,如果信息傳輸?shù)哪繕?biāo)改為在系統(tǒng)B 上的應(yīng)用程序C,這種變

14、化不會(huì)對(duì)應(yīng)用程序A 產(chǎn)生影響,應(yīng)用程序A 向隊(duì)列 2 發(fā)送一條信息,系統(tǒng)A 的 MQ 發(fā)現(xiàn) Q2 所指向的目的隊(duì)列實(shí)際上位于系統(tǒng)B,它將信息放到本地的一個(gè)特殊隊(duì)列傳輸隊(duì)列(Transmission Queue)。我們建立一條從系統(tǒng) A 到系統(tǒng) B的消息通道,消息通道代理將從傳輸隊(duì)列中讀取消息,并傳遞這條信息到系統(tǒng)B ,然后等待確認(rèn)。只有MQ 接到系統(tǒng) B 成功收到信息的確認(rèn)之后,它才從傳輸隊(duì)列中真正將該信息刪除。如果通訊線路不通,或系統(tǒng)B 不在運(yùn)行,信息會(huì)留在傳輸隊(duì)列中,直到被成功地傳送到目的地。這是MQ 最基本而最重要的技術(shù) -確保信息傳輸,并且是一次且僅一次(once-and-only-o

15、nce)的傳遞。MQ 提供了用于應(yīng)用集成的松耦合的連接方法,因?yàn)楣蚕硇畔⒌膽?yīng)用不需要知道彼此物理位置(網(wǎng)絡(luò)地址);不需要知道彼此間怎樣建立通信;不需要同時(shí)處于運(yùn)行狀態(tài);不需要在同樣的操作系統(tǒng)或網(wǎng)絡(luò)環(huán)境下運(yùn)行。MQ 的基本配置舉例在上圖中,要實(shí)現(xiàn)網(wǎng)絡(luò)上兩臺(tái)主機(jī)上的通訊,若采用點(diǎn)對(duì)點(diǎn)的通訊方式,我們至少要建立如下MQ 的對(duì)象:在發(fā)送方A:1) 建立隊(duì)列管理器QMA: crtmqm -q QMA2) 定義本地傳輸隊(duì)列: define qlocal (QMB) usage (xmitq) defpsist(yes)3) 創(chuàng)建遠(yuǎn)程隊(duì)列: define qremote (QR.TOB) rname (LQ

16、B) rqmname (QMB) xmitq (QMB)4) 定義發(fā)送通道: define channel (A.TO.B) chltype (sdr) conname (IP of B) xmitq (QMB) + trptype (tcp)在接收方B :1) 建立隊(duì)列管理器QMB: crtmqm -q QMB2) 定義本地隊(duì)列QLB: define qlocal (LQB)3) 創(chuàng)建接收通道: define channel (A.TO.B) chltype (rcvr) trptype (tcp)經(jīng)過上述配置,我們就可以實(shí)現(xiàn)從主機(jī)A 到 B 的單向通訊,若要實(shí)現(xiàn)二者之間的雙向通訊,可參考此

17、例創(chuàng)建所需要的MQ 對(duì)象。MQ 的通訊模式1) 點(diǎn)對(duì)點(diǎn)通訊:點(diǎn)對(duì)點(diǎn)方式是最為傳統(tǒng)和常見的通訊方式,它支持一對(duì)一、一對(duì)多、多對(duì)多、多對(duì)一等多種配置方式,支持樹狀、網(wǎng)狀等多種拓?fù)浣Y(jié)構(gòu)。2) 多點(diǎn)廣播:MQ 適用于不同類型的應(yīng)用。其中重要的,也是正在發(fā)展中的是多點(diǎn)廣播 應(yīng)用,即能夠?qū)⑾l(fā)送到多個(gè)目標(biāo)站點(diǎn)(Destination List)??梢允褂靡粭l MQ 指令將單一消息發(fā)送到多個(gè)目標(biāo)站點(diǎn),并確保為每一站點(diǎn)可靠地提供信息。MQ 不僅提供了多點(diǎn)廣播的功能,而且還擁有智能消息分發(fā)功能,在將一條消息發(fā)送到同一系統(tǒng)上的多個(gè)用戶時(shí),MQ 將消息的一個(gè)復(fù)制版本和該系統(tǒng)上接收者的名單發(fā)送到目標(biāo)MQ 系統(tǒng)。目標(biāo)

18、MQ 系統(tǒng)在本地復(fù)制這些消息,并將它們發(fā)送到名單上的隊(duì)列,從而盡可能減少網(wǎng)絡(luò)的傳輸量。3) 發(fā)布 / 訂閱 (Publish/Subscribe) 模式:發(fā)布 /訂閱功能使消息的分發(fā)可以突破目的隊(duì)列地理指向的限制,使消息按照特定的主題甚至內(nèi)容進(jìn)行分發(fā),用戶或應(yīng)用程序可以根據(jù)主題或內(nèi)容接收到所需要的消息。發(fā)布/ 訂閱功能使得發(fā)送者和接收者之間的耦合關(guān)系變得更為松散,發(fā)送者不必關(guān)心接收者的目的地址,而接收者也不必關(guān)心消息的發(fā)送地址,而只是根據(jù)消息的主題進(jìn)行消息的收發(fā)。在MQ 家族產(chǎn)品中, MQ Event Broker是專門用于使用發(fā)布/訂閱技術(shù)進(jìn)行數(shù)據(jù)通訊的產(chǎn)品,它支持基于隊(duì)列和直接基于TCP/

19、IP兩種方式的發(fā)布和訂閱。4) 群集 (Cluster) :為了簡(jiǎn)化點(diǎn)對(duì)點(diǎn)通訊模式中的系統(tǒng)配置,MQ 提供 Cluster( 群集 )的解決方案。群集類似于一個(gè)域(Domain) ,群集內(nèi)部的隊(duì)列管理器之間通訊時(shí),不需要兩兩之間建立消息通道,而是采用群集(Cluster) 通道與其它成員通訊,從而大大簡(jiǎn)化了系統(tǒng)配置。此外,群集中的隊(duì)列管理器之間能夠自動(dòng)進(jìn)行負(fù)載均衡,當(dāng)某一隊(duì)列管理器出現(xiàn)故障時(shí),其它隊(duì)列管理器可以接管它的工作,從而大大提高系統(tǒng)的高可靠性。MQ Server和 MQ ClientMQ 產(chǎn)品分為 Server 和 Client兩種版本,在MQ 服務(wù)器的運(yùn)行環(huán)境下,有隊(duì)列管理器、隊(duì)列、

20、消息通道等對(duì)象,它提供全面的消息服務(wù); MQ Client為我們提供了一個(gè)MQ 應(yīng)用程序的開發(fā)和運(yùn)行環(huán)境,它是MQ API 的 Client 實(shí)現(xiàn)。在客戶端環(huán)境下,沒有隊(duì)列管理器、隊(duì)列等對(duì)象,它通過MQI 通道與服務(wù)器之間建立通訊,并將消息從客戶端發(fā)往服務(wù)器端的隊(duì)列,或從Server 端的隊(duì)列中取得消息,它比較適合于網(wǎng)絡(luò)條件較好或?qū)崟r(shí)通訊的情況。同時(shí)要指出的是:采用MQ Client 并不會(huì)導(dǎo)致數(shù)據(jù)的丟失或不完整性。MQ Client 提供下列好處:適合同步處理的工作模式;減少系統(tǒng)負(fù)擔(dān);減少系統(tǒng)管理開銷;減少磁盤空間要求等。MQ 的 APIMQ 支持多種編程語言,其中包括:C、C+ 、Java 、 VisualBasic 、 COBOL 、PL/1 、RPG 等,同時(shí)也支持多種流行的開發(fā)工具,如:WebSphere StudioApplication Developer, PowerBuiler、 Microsoft Visual C+、Visual Basic 、Delphi等。并且, MQ 在不同平臺(tái)上提供統(tǒng)一的編程接口,僅需重新編

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論