flume测试

flume 测试扩展性
flume的扩展性该如何测试?我没有想明白,如果有哪位高人知道请留言。
同事说就是测试其tps的性能。
案例:4台nginx服务器,每台节点起一个flume agent 监听其日志,随后发送第二层的flume。其中第一层的flume sink 使用sinkgroup做了balance。
我的理解是:第二层部署一个实例,和部署两个实例的对比情况就是测试其扩展性。但是通过监听每秒channel的经过的event数。其数值差距不大,且没有规律。
flume本身应该是串行的,首先sinkgroup就是单线程的,第一层不管接受到多少数据,到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<String, HashMap<String, String>> obMap = (HashMap<String, HashMap<String, String>>) 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();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 博客原文 翻译作品,水平有限,如有错误,烦请留言指正。原文请见 官网英文文档 引言 概述 Apache Flume...
    rabbitGYK阅读 11,538评论 13 34
  • 介绍 概述 Apache Flume是为有效收集聚合和移动大量来自不同源到中心数据存储而设计的可分布,可靠的,可用...
    ximengchj阅读 3,553评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • 1. Flume简介 Apache Flume是一个分布式的、可靠的、可用的,从多种不同的源收集、聚集、移动大量日...
    奉先阅读 4,516评论 2 5
  • 人的好奇心真的是会害死猫的,正如小雯🐷说的,惊喜的黑洞,就因为心里的那一丝丝的好奇心,就足以驱使你想方设法知...
    24k纯逗比阅读 491评论 2 1