WebSocket-bench分佈式壓測部署

1.首先要把用戶本身編寫業務壓測邏輯generator.js腳本分別放到各壓測機上

2.打通各壓測機的ssh登陸祕鑰

這裏我請教同事獲得一個比較快捷方便的配置方法----node

採用centos系統自帶的祕鑰-------->敲出ssh字符,而後雙按tab鍵,linux

就會出現咱們想要的一些數據。。。。c++

如圖:web

而後執行ssh-copy-id   root@ip地址centos

會出現一些選項,咱們選擇yes,及root帳號輸入密碼就能夠,bash

成功後,咱們驗證一下,咱們是否配合祕鑰成功  --------------咱們這裏的控制檯是要去連接多臺壓載機,因此給其它壓載機的是公祕鑰,控制檯是私祕鑰websocket

直接敲入ssh  ip地址  查看是否登陸成功ssh

3 websocket-bench,控制腳本編寫

#!/bin/bash
#disabled selinux
nodes="172.18.10.38 
172.18.10.37
172.18.10.36
172.18.10.35
172.18.10.34
172.18.10.33
172.18.10.32
172.18.10.31
172.18.10.30
172.18.10.49"
for node in ${nodes}
do               //---------這裏的大括號是讓它並行運行命令,若是要串行去掉{}&
{
echo "online ${node} ..."
ssh root@${node} "cd /usr/lib/node_modules/websocket-bench/lib/ && websocket-bench -a 998 -c 2 -k -g generator.js http://172.18.10.10:3380"
}&
done
View Code

4 各加載機generator.js腳本

 1 /*global module, require*/
 2 var i =  0;
 3 var m = 1;
 4 var c = 0;
 5 var logger = require('./logger');
 6 var start = Date.now();
 7 setTimeout(function() {
 8 }, 1000);
 9 module.exports = {
10   onConnect : function (client, done) {
11 // 訂閱消息
12         var _m = m;
13        client.emit('pusher_test:subscribe',{channel:'private-group-NO' + _m, auth:'callback'});
14         console.log(m);
15 //  發送消息
16        setInterval(function() {
17         if (i<1000000000){
18          client.emit('pusher_test:messgae',{channel:'private-group-NO' + _m, msg: '我是>第' + ++i +'個消息'});
19         }}, 1000);
20 //  監聽消息
21         client.on('private-group-NO' + _m, function(content) {
22                 console.log(new Date()+ new Date().getMilliseconds());
23                  console.log(content);
24          });
25         c++;   //是判斷總訂閱人數
26         if (c % 2 == 0) {
27         m++;
28         }
29   done();
30 }};
View Code
相關文章
相關標籤/搜索