1.一種節(jié)點(diǎn)對(duì)等的集群分布式測試框架,其特征在于,所述集群分布式測試框架包括至少一個(gè)測試任務(wù)發(fā)送者節(jié)點(diǎn)、若干個(gè)測試任務(wù)接收者節(jié)點(diǎn)、若干個(gè)測試結(jié)果發(fā)送者節(jié)點(diǎn)和至少一個(gè)測試結(jié)果收集者節(jié)點(diǎn),所有節(jié)點(diǎn)通過網(wǎng)絡(luò)連接,每個(gè)節(jié)點(diǎn)基于ZMQ_DEALER套接字以發(fā)送測試任務(wù)到對(duì)端節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)基于ZMQ_ROUTER套接字以接收對(duì)端節(jié)點(diǎn)發(fā)送的測試任務(wù),測試結(jié)果發(fā)送者節(jié)點(diǎn)基于ZMQ_PUB套接字以發(fā)送測試結(jié)果到測試結(jié)果收集者節(jié)點(diǎn),測試結(jié)果收集者節(jié)點(diǎn)設(shè)置ZMQ_SUB套接字以收集測試結(jié)果發(fā)送者節(jié)點(diǎn)發(fā)送的測試結(jié)果。
2.一種節(jié)點(diǎn)對(duì)等的集群分布式測試方法,應(yīng)用于權(quán)利要求1所述的節(jié)點(diǎn)對(duì)等的集群分布式測試框架,其特征在于,包括以下步驟:
S1、啟動(dòng)所有的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)創(chuàng)建一個(gè)ZMQ_ROUTER套接字并綁定以接收消息;
S2、每個(gè)節(jié)點(diǎn)通過網(wǎng)絡(luò)發(fā)現(xiàn)集群中的其他節(jié)點(diǎn),每發(fā)現(xiàn)一個(gè)節(jié)點(diǎn)即創(chuàng)建一個(gè)ZMQ_DEALER套接字與發(fā)現(xiàn)的節(jié)點(diǎn)的ZMQ_ROUTER套接字連接;
S3、判斷節(jié)點(diǎn)是否為測試任務(wù)發(fā)送者節(jié)點(diǎn),若是,所述節(jié)點(diǎn)通過多個(gè)ZMQ_DEALER套接字分別向多個(gè)對(duì)端節(jié)點(diǎn)發(fā)送測試任務(wù),執(zhí)行測試任務(wù)并存儲(chǔ)測試結(jié)果;否則,所述節(jié)點(diǎn)通過ZMQ_ROUTER套接字接收測試任務(wù),執(zhí)行測試任務(wù)并存儲(chǔ)測試結(jié)果;
S4、判斷節(jié)點(diǎn)是否為測試結(jié)果發(fā)送者節(jié)點(diǎn),若是,所述節(jié)點(diǎn)創(chuàng)建ZMQ_PUB套接字,并通過ZMQ_PUB套接字與ZMQ_SUB套接字連接以發(fā)送測試結(jié)果;否則,所述節(jié)點(diǎn)創(chuàng)建ZMQ_SUB套接字,通過ZMQ_SUB套接字接收測試結(jié)果。
3.根據(jù)權(quán)利要求2所述的集群分布式測試方法,其特征在于,所述步驟S2與步驟S3之間還包括步驟:
每個(gè)節(jié)點(diǎn)間隔預(yù)定時(shí)間檢測對(duì)端節(jié)點(diǎn)是否離開,若離開,則關(guān)閉離開的對(duì)端節(jié)點(diǎn)對(duì)應(yīng)的ZMQ_DEALER套接字。
4.根據(jù)權(quán)利要求2或3所述的集群分布式測試方法,其特征在于,所述步驟S2中節(jié)點(diǎn)創(chuàng)建ZMQ_DEALER套接字后,設(shè)置ZMQ_DEALER套接字的屬性為所述節(jié)點(diǎn)的識(shí)別信息;通過ZMQ_ROUTER套接字連接上對(duì)端節(jié)點(diǎn)后,將所述節(jié)點(diǎn)的識(shí)別信息和地址信息發(fā)送至對(duì)端節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求4所述的集群分布式測試方法,其特征在于,所述步驟S4中,所述節(jié)點(diǎn)創(chuàng)建ZMQ_SUB套接字,設(shè)置訂閱過濾并綁定ZMQ_SUB套接字,通過ZMQ_SUB套接字接收ZMQ_PUB套接字發(fā)送的測試結(jié)果。
6.根據(jù)權(quán)利要求5所述的集群分布式測試方法,其特征在于,所述節(jié)點(diǎn)執(zhí)行測試任務(wù)后將測試結(jié)果進(jìn)行加密并存儲(chǔ),所述節(jié)點(diǎn)接收測試結(jié)果后進(jìn)行加密并存儲(chǔ)。
7.根據(jù)權(quán)利要求6所述的集群分布式測試方法,其特征在于,所述每個(gè)節(jié)點(diǎn)通過網(wǎng)絡(luò)發(fā)現(xiàn)集群中的其他節(jié)點(diǎn)的方法包括廣播UDP包或Gossip發(fā)現(xiàn)協(xié)議。
8.根據(jù)權(quán)利要求7所述的集群分布式測試方法,其特征在于,所述執(zhí)行測試任務(wù)的測試工具包括IOZONE或SANERGY。
9.根據(jù)權(quán)利要求8所述的集群分布式測試方法,其特征在于,所述測試結(jié)果包括讀速度、寫速度、IOPS、訪問延時(shí)、丟幀數(shù)的任意組合。
10.根據(jù)權(quán)利要求9所述的集群分布式測試方法,其特征在于,所述測試任務(wù)包括文件IO操作。