flumeテスト

2171 ワード

flumeテスト拡張性flumeの拡張性はどのようにテストしますか?分からなかったので、どなたかご存知の方がいらっしゃいましたらメッセージをお願いします.同僚はtpsの性能をテストすると言った.ケース:nginxサーバ4台、ノードごとにflume agentがログをリスニングし、2番目のレイヤのflumeを送信します.このうち第1層のflume sinkはsinkgroupを用いてbalanceを作った.私の理解は、2番目のレイヤが1つのインスタンスを配置することと、2つのインスタンスを配置することの比較は、その拡張性をテストすることです.しかし、毎秒channelの経過を傍受するevent数.その数値差は大きくなく,規則的ではない.flume自体はシリアルであるべきで、まずsinkgroupは単一スレッドであり、第1層はいくらデータを受け取ってもsinkになると順番に流れ、並列度がない.
問題:tpsという指標は並列実行アーキテクチャ(mppアーキテクチャ)のテストにのみ適しているかどうか.複数のノードを増やすことで負荷能力を向上させるシステム?次のコードは、httpプロトコルを使用してflume内のchannelが流れるeventsの数をリスニングします.
public class SingleMonitor {
    public static void main(String[] args) {
        ObjectMapper objectMapper = new ObjectMapper();
        String channelName = args[args.length - 1];
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i <= args.length - 2; i++) {
            sb.append(args[i]).append(",");
        }
        System.out.println(" uri :[" + sb.toString() + "],channelName :[" + channelName + "]");
        String[] tmp_array = new String[args.length-1];
        try {
            while (true) {
                for (int i = 0; i <= args.length - 2; i++) {
                    String url = args[i];
                    String responseStr = HttpClientUtil.sendHttpGet(url);
                    HashMap> obMap = (HashMap>) objectMapper.readValue(responseStr, Map.class);
                    tmp_array[i] = obMap.get(channelName).get("EventTakeSuccessCount");
                }
                System.out.println(System.currentTimeMillis() / 1000 + array2Str(tmp_array));
                Thread.sleep(1000);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public static String array2Str(String[] tmpArray) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < tmpArray.length; i++) {
            sb.append(",").append(tmpArray[i]);
        }
        return sb.toString();
    }
}