亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種節(jié)點對等的集群分布式測試框架和方法與流程

文檔序號:12491926閱讀:295來源:國知局
一種節(jié)點對等的集群分布式測試框架和方法與流程

本發(fā)明涉及測試數(shù)據(jù)傳輸領(lǐng)域,尤其是一種節(jié)點對等的集群分布式測試框架和方法。



背景技術(shù):

IOZONE是一個文件系統(tǒng)的benchmark工具,可以測試不同的操作系統(tǒng)中文件系統(tǒng)的讀寫性能。

SANERGY是一種存儲共享、帶寬測試軟件。

IOPS(Input/Output Operations Per Second),即每秒進行讀寫(I/O)操作的次數(shù),多用于數(shù)據(jù)庫等場合,衡量隨機訪問的性能。

ZeroMQ(以下ZeroMQ簡稱ZMQ)是一個通用的消息層,其中Zero意味著零延時,也被定義為“史上最快的消息隊列”。ZeroMQ提供3種基本通訊模式:Request-Reply、Publish-Subscribe、Parallel Pipeline。使用ZeroMQ可以方便、快速的構(gòu)建分布式架構(gòu)。

隨著集群中主機數(shù)量的遞增,以及主機分布式布局中方位的不確定,原有的使用腳本同步集群中所有主機測試任務(wù)的測試方法暴露出繁瑣、效率低等弊端。如果主機數(shù)量過多,執(zhí)行完測試任務(wù)后仍舊單次只能查看單個主機的測試結(jié)果,不利于對集群整體性能進行分析、評估、優(yōu)化。



技術(shù)實現(xiàn)要素:

為了解決上述技術(shù)問題,本發(fā)明的目的是提供一種節(jié)點對等的集群分布式測試框架和方法,解決了集群中節(jié)點數(shù)量增多以及節(jié)點分布式布局中方位不確定,而導致同步集群中所有節(jié)點的測試任務(wù)繁瑣,以及測試任務(wù)執(zhí)行完成后無法同時查看集群中所有節(jié)點的測試結(jié)果的問題。

本發(fā)明所采用的技術(shù)方案是:一種節(jié)點對等的集群分布式測試框架,所述集群分布式測試框架包括至少一個測試任務(wù)發(fā)送者節(jié)點、若干個測試任務(wù)接收者節(jié)點、若干個測試結(jié)果發(fā)送者節(jié)點和至少一個測試結(jié)果收集者節(jié)點,所有節(jié)點通過網(wǎng)絡(luò)連接,每個節(jié)點基于ZMQ_DEALER套接字以發(fā)送測試任務(wù)到對端節(jié)點,每個節(jié)點基于ZMQ_ROUTER套接字以接收對端節(jié)點發(fā)送的測試任務(wù),測試結(jié)果發(fā)送者節(jié)點基于ZMQ_PUB套接字以發(fā)送測試結(jié)果到測試結(jié)果收集者節(jié)點,測試結(jié)果收集者節(jié)點設(shè)置ZMQ_SUB套接字以收集測試結(jié)果發(fā)送者節(jié)點發(fā)送的測試結(jié)果。

本發(fā)明所采用的另一技術(shù)方案是:一種節(jié)點對等的集群分布式測試方法,應(yīng)用于所述的節(jié)點對等的集群分布式測試框架,包括以下步驟:

S1、啟動所有的節(jié)點,每個節(jié)點創(chuàng)建一個ZMQ_ROUTER套接字并綁定以接收消息;

S2、每個節(jié)點通過網(wǎng)絡(luò)發(fā)現(xiàn)集群中的其他節(jié)點,每發(fā)現(xiàn)一個節(jié)點即創(chuàng)建一個ZMQ_DEALER套接字與發(fā)現(xiàn)的節(jié)點的ZMQ_ROUTER套接字連接;

S3、判斷節(jié)點是否為測試任務(wù)發(fā)送者節(jié)點,若是,所述節(jié)點通過多個ZMQ_DEALER套接字分別向多個對端節(jié)點發(fā)送測試任務(wù),執(zhí)行測試任務(wù)并存儲測試結(jié)果;否則,所述節(jié)點通過ZMQ_ROUTER套接字接收測試任務(wù),執(zhí)行測試任務(wù)并存儲測試結(jié)果;

S4、判斷節(jié)點是否為測試結(jié)果發(fā)送者節(jié)點,若是,所述節(jié)點創(chuàng)建ZMQ_PUB套接字,并通過ZMQ_PUB套接字與ZMQ_SUB套接字連接以發(fā)送測試結(jié)果;否則,所述節(jié)點創(chuàng)建ZMQ_SUB套接字,通過ZMQ_SUB套接字接收測試結(jié)果。

進一步地,所述步驟S2與步驟S3之間還包括步驟:

每個節(jié)點間隔預定時間檢測對端節(jié)點是否離開,若離開,則關(guān)閉離開的對端節(jié)點對應(yīng)的ZMQ_DEALER套接字。

進一步地,所述步驟S2中節(jié)點創(chuàng)建ZMQ_DEALER套接字后,設(shè)置ZMQ_DEALER套接字的屬性為所述節(jié)點的識別信息;通過ZMQ_ROUTER套接字連接上對端節(jié)點后,將所述節(jié)點的識別信息和地址信息發(fā)送至對端節(jié)點。

進一步地,所述步驟S4中,所述節(jié)點創(chuàng)建ZMQ_SUB套接字,設(shè)置訂閱過濾并綁定ZMQ_SUB套接字,通過ZMQ_SUB套接字接收ZMQ_PUB套接字發(fā)送的測試結(jié)果。

進一步地,所述節(jié)點執(zhí)行測試任務(wù)后將測試結(jié)果進行加密并存儲,所述節(jié)點接收測試結(jié)果后進行加密并存儲。

進一步地,所述每個節(jié)點通過網(wǎng)絡(luò)發(fā)現(xiàn)集群中的其他節(jié)點的方法包括廣播UDP包或Gossip發(fā)現(xiàn)協(xié)議。

進一步地,所述執(zhí)行測試任務(wù)的測試工具包括IOZONE或SANERGY。

進一步地,所述測試結(jié)果包括讀速度、寫速度、IOPS、訪問延時、丟幀數(shù)的任意組合。

進一步地,所述測試任務(wù)包括文件IO操作。

本發(fā)明的有益效果是:本發(fā)明一種節(jié)點對等的集群分布式測試框架和方法,該框架充分利用分布式的特點,去中心化,集群中每一個節(jié)點既是測試任務(wù)的發(fā)布者,也是測試任務(wù)的接收執(zhí)行者;既是測試結(jié)果的發(fā)送者,也是測試結(jié)果的收集存儲者;通過該框架集群中所有節(jié)點可以同步執(zhí)行相同的測試任務(wù);如果集群中一個節(jié)點癱瘓,可以選擇其他節(jié)點發(fā)布測試任務(wù)或收集測試結(jié)果,不會影響整個集群的測試,提高了測試的可靠性;本框架中各部分都采用ZeroMQ Msg對數(shù)據(jù)進行編碼,結(jié)合其PUB-SUB模式、ROUTER/DEALER套接字,充分利用ZeroMQ高效的傳輸性能,構(gòu)建一個高效、可靠的節(jié)點對等的分布式測試框架,提供了一種高效、可靠的節(jié)點對等的分布式測試方法。

附圖說明

下面結(jié)合附圖對本發(fā)明的具體實施方式作進一步說明:

圖1是本發(fā)明中一種節(jié)點對等的集群分布式測試框架的數(shù)據(jù)傳輸示意圖;

圖2是本發(fā)明中一種節(jié)點對等的集群分布式測試方法的步驟流程圖;

圖3是本發(fā)明中一種節(jié)點對等的集群分布式測試方法的一具體實施例步驟流程圖。

具體實施方式

需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。

一種節(jié)點對等的集群分布式測試框架,集群分布式測試框架包括至少一個測試任務(wù)發(fā)送者節(jié)點、若干個測試任務(wù)接收者節(jié)點、若干個測試結(jié)果發(fā)送者節(jié)點和至少一個測試結(jié)果收集者節(jié)點,所有節(jié)點通過網(wǎng)絡(luò)連接,參考圖1,圖1是本發(fā)明中一種節(jié)點對等的集群分布式測試框架的數(shù)據(jù)傳輸示意圖,所有節(jié)點互連采用ZeroMQ技術(shù)中的ROUTER/DEALER套接字,每個節(jié)點基于ZMQ_DEALER套接字以發(fā)送測試任務(wù)到對端節(jié)點,每個節(jié)點基于ZMQ_ROUTER套接字以接收對端節(jié)點發(fā)送的測試任務(wù),測試結(jié)果收集采用ZeroMQ技術(shù)中的PUB-SUB模式,測試結(jié)果發(fā)送者節(jié)點基于ZMQ_PUB套接字以發(fā)送測試結(jié)果到測試結(jié)果收集者節(jié)點,如圖1中的節(jié)點1和節(jié)點2,測試結(jié)果收集者節(jié)點設(shè)置ZMQ_SUB套接字以收集測試結(jié)果發(fā)送者節(jié)點發(fā)送的測試結(jié)果,如圖1中的節(jié)點N。另外,多個節(jié)點之間可以通過局域網(wǎng)絡(luò)或者廣域網(wǎng)絡(luò)建立網(wǎng)絡(luò)連接。

一種節(jié)點對等的集群分布式測試框架,該框架充分利用分布式的特點,去中心化,集群中每一個節(jié)點既是測試任務(wù)的發(fā)布者,也是測試任務(wù)的接收執(zhí)行者;既是測試結(jié)果的發(fā)送者,也是測試結(jié)果的收集存儲者。

一種節(jié)點對等的集群分布式測試方法,應(yīng)用于所述的節(jié)點對等的集群分布式測試框架,參考圖2和圖3,圖2是本發(fā)明中一種節(jié)點對等的集群分布式測試方法的步驟流程圖,圖3是本發(fā)明中一種節(jié)點對等的集群分布式測試方法的一具體實施例步驟流程圖,圖3示意的是單個節(jié)點的數(shù)據(jù)傳輸情況,節(jié)點對等的集群分布式測試方法包括以下步驟:

S1、啟動所有的節(jié)點,每個節(jié)點創(chuàng)建一個ZMQ_ROUTER套接字并綁定以接收消息;

S2、每個節(jié)點通過網(wǎng)絡(luò)發(fā)現(xiàn)集群中的其他節(jié)點,每發(fā)現(xiàn)一個節(jié)點即創(chuàng)建一個ZMQ_DEALER套接字與發(fā)現(xiàn)的節(jié)點的ZMQ_ROUTER套接字連接,每一個對端節(jié)點對應(yīng)一個ZMQ_DEALER套接字,以實現(xiàn)扇出數(shù)據(jù)到多個對端節(jié)點;進一步地,每個節(jié)點通過網(wǎng)絡(luò)發(fā)現(xiàn)集群中的其他節(jié)點的方法包括廣播UDP包或Gossip發(fā)現(xiàn)協(xié)議;步驟S2中節(jié)點創(chuàng)建ZMQ_DEALER套接字后,設(shè)置ZMQ_DEALER套接字的屬性為節(jié)點的唯一的識別信息;通過ZMQ_ROUTER套接字連接上對端節(jié)點后,將節(jié)點的識別信息和地址信息發(fā)送至對端節(jié)點,以便對端節(jié)點能夠回連至該節(jié)點。本實施例中,本發(fā)明中的節(jié)點即為主機,節(jié)點的識別信息為節(jié)點的UUID碼,也可以是其他的固定不變可唯一識別節(jié)點的信息;

作為技術(shù)方案的進一步改進,每個節(jié)點間隔預定時間檢測對端節(jié)點是否離開,若離開,則關(guān)閉離開的對端節(jié)點對應(yīng)的ZMQ_DEALER套接字;具體地,檢測對端節(jié)點是否離開的方法包括Ping-Pong方式的心跳檢測;

S3、判斷節(jié)點是否為測試任務(wù)發(fā)送者節(jié)點,若是,節(jié)點通過多個ZMQ_DEALER套接字分別向多個對端節(jié)點發(fā)送測試任務(wù),根據(jù)ZMQ_ROUTER套接字的特性,對端節(jié)點可得到發(fā)送此消息節(jié)點的UUID碼,執(zhí)行測試任務(wù)并加密存儲測試結(jié)果;否則,節(jié)點通過ZMQ_ROUTER套接字接收測試任務(wù),執(zhí)行測試任務(wù)并加密存儲測試結(jié)果;進一步地,執(zhí)行測試任務(wù)的測試工具包括IOZONE或SANERGY;測試結(jié)果包括讀速度、寫速度、IOPS、訪問延時、丟幀數(shù)的任意組合;

S4、判斷節(jié)點是否為測試結(jié)果發(fā)送者節(jié)點,若是,節(jié)點創(chuàng)建ZMQ_PUB套接字,并通過ZMQ_PUB套接字與ZMQ_SUB套接字連接以發(fā)送測試結(jié)果,其中,ZMQ_PUB套接字以扇出的方式用于發(fā)送數(shù)據(jù);否則,節(jié)點創(chuàng)建ZMQ_SUB套接字,通過ZMQ_SUB套接字接收測試結(jié)果,加密并存儲,并由分析程序做進一步分析。進一步地,步驟S4中,節(jié)點創(chuàng)建ZMQ_SUB套接字,設(shè)置訂閱過濾并綁定ZMQ_SUB套接字,通過ZMQ_SUB套接字接收ZMQ_PUB套接字發(fā)送的測試結(jié)果,各節(jié)點的測試結(jié)果交叉到達,互不影響。最后,結(jié)束數(shù)據(jù)傳輸,關(guān)閉所有套接字。

由于ZeroMQ技術(shù)的跨平臺、可移植性,本發(fā)明對操作系統(tǒng)不做限制。ZeroMQ可以被大多數(shù)語言進行調(diào)用,包括C、C++、C#、Clojure、CL、Erlang、F#、Felix、Go、Haskell、Java、Lua、Node.js、Objective-C、Perl、PHP、Python、Ruby、Scala、Tcl、Ada、Basic、Haxe、ooc。

通過本發(fā)明的集群中所有節(jié)點可以同步執(zhí)行相同的測試任務(wù);如果集群中一個節(jié)點癱瘓,可以選擇其他節(jié)點發(fā)布測試任務(wù)或收集測試結(jié)果,不會影響整個集群的測試,提高了測試的可靠性;本框架中各部分都采用ZeroMQ Msg對數(shù)據(jù)進行編碼,結(jié)合其PUB-SUB模式、ROUTER/DEALER套接字,充分利用ZeroMQ高效的傳輸性能,構(gòu)建一個高效、可靠的節(jié)點對等的分布式測試框架,提供了一種高效、可靠的節(jié)點對等的分布式測試方法。

以上是對本發(fā)明的較佳實施進行了具體說明,但本發(fā)明創(chuàng)造并不限于所述實施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可做出種種的等同變形或替換,這些等同的變形或替換均包含在本申請權(quán)利要求所限定的范圍內(nèi)。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1