zoukankan      html  css  js  c++  java
  • jmeter性能压测

    之前分享过一篇线程队列

    #分享一段线程队列--生产者和消费者代码#

    然后一直不知道对性能带来了多大的改善,今天借着对java应用的压测,对这段代码进行一个压力测试,看看实际效果如何

    环境:springboot+spring-kafka

    一个测试case是不用线程队列来发送kafka消息,

    另一个是借助线程队列来存放消息,在消费者端再由kafka发送出去

    这里用了两种 a.为线程队列,b为无锁环形队列

    @RestController
    public class SampleController {
    
        @Autowired
        private Environment env;
    
        @Autowired
        private KafkaDisruptorProducer kafkaDisruptorProducer;
    
        @Autowired
        private KafkaMqProducer kafkaProducer;
    
        @Autowired
        private KafkaTemplate<Integer, String> kafkaTemplate;
    
        @RequestMapping("/testProfile")
        public String testProfile(){
            return env.getProperty("profile");
        }
    
        @RequestMapping("/test4")
        public String homemvckafak4() {
            EventMsg eventMessage=new EventMsg();
            eventMessage.setEventName("test-method-->"+env.getProperty("profile")+System.currentTimeMillis());
    
            //通过线程生产者-消费者模型来发送消息
            kafkaProducer.write(eventMessage);
            return "kafka3==>Hello World! file.upload.stor-path";
        }
    
    
        @RequestMapping("/test3")
        public String homemvckafak() {
            EventMsg eventMessage=new EventMsg();
            eventMessage.setEventName("test-method-->"+env.getProperty("profile")+System.currentTimeMillis());
    
            //直接走kafka发送消息
            kafkaTemplate.sendDefault(JSON.toJSONString(eventMessage));
            return "kafka3==>Hello World! file.upload.stor-path";
        }
    
        @RequestMapping("/test")
        public String home() {
            EventMsg eventMessage=new EventMsg();
            eventMessage.setEventName("test-method-->"+env.getProperty("profile")+System.currentTimeMillis());
    
            //通过高性能无锁队列来发送消息
            kafkaDisruptorProducer.write(eventMessage);
            return "kafka==>Hello World! file.upload.stor-path";
        }
    
        @RequestMapping("/test2")
        public String homemvc() {
    
            //直接返回,实测性能作为参照指标
            return "kafka2==>Hello World! file.upload.stor-path";
        }
    
    }

    打开jmeter 配置好压测参数,

    实测test3,为直接通过kafka发送消息

    2.压test4,为线程队列发送消息

    可以看出使用线程队列比不使用性能高出1000+ tps

    以上为单机测试,电脑东西开的多,会有一定的影响,不过要正常测试的话,在6k左右是正常

    附kafka监控,直接使用kafka发送消息,那么这里显示的message速度会在1-2K之间,如果是线程队列,那么在0.5-0.7之间,这里写入队列和取出队列会有相应的损耗所致

  • 相关阅读:
    JAVA假期第五天2020年7月10日
    JAVA假期第四天2020年7月9日
    JAVA假期第三天2020年7月8日
    JAVA假期第二天2020年7月7日
    JAVA假期第一天2020年7月6日
    CTF-sql-group by报错注入
    CTF-sql-order by盲注
    CTF-sql-sql约束注入
    CTF-sql-万能密码
    X-Forwarded-for漏洞解析
  • 原文地址:https://www.cnblogs.com/fangyuan303687320/p/8134726.html
Copyright © 2011-2022 走看看