前言

项目最近需要接入一个推送功能,之前都是用云端内部接口模拟推送诊修消息的,但是实际触发场景是:诊修服务会将消息下发到kafka充当生产者,然后kafka推送给下游云端进行消费,所以,要模拟生产者往kafka推送消息,并且还要模拟批量推送的场景,以便掌握批量推送诊修消息的性能是否满足正常要求(每秒20~50条左右的强度)

性能场景(jmeter)

jmeter工具是常规性能测试工具,功能比较完善,这里选择此工具作为性能场景的测试工具,下面说下大致测试思路以及工具的使用方法。

思路

首先要先确认或者调研一下,推送频率的两个维度,同一时间点内和同一时间段内,推送的强度有多大(如果按上述诊修逻辑来看,基本不会出现大并发量的)。

如果是每秒20~50条的强度推送的话,不需要设置集合点,可以设置在多少秒内全部启动20~50个线程场景进行验证(ramp-up就是设置多少秒启动所有线程的方式,如果设置为0代表立即启动所有线程),然后监控kafka的消费者对应的服务性能(alarm)

方法

1.jmeter设置线程配置

2.需要下载一个jar包,放到jmeter的lib/ext路径下kafkameter-0.2.0.jar,见下图

3.线程组下添加java请求

4.按照实际地址改以下四个栏位数据

kafka_brokers--kafka的ip地址

kafka_topic--topic的名称

kafka_key -- 随便填

kafka_message --消息推送内容

其中,消息内容,加了随机函数和时间函数,用来区分批量数据,模板如下:

[{ "type":${__Random(1001,1003,id)}, "terminal":"10256960901", "content":{"faultContent":[{"faulttitle":"gx增压温度传感器或线束故障或温度异常${__time(,time)}"}],"terminal":"099034779244","carLon":"113.412648","faultLevel":"1","faultDesc":"","faultName":"增压温度采集电压超出上限值","carLat":"23.177706","faultCode":"P007A12","faultId":"60d3df53e4b092b899c4b939","vin":"LFWNHXSE0HAD15717","location":"广东省广州市天河区新塘街道高普路","time":"2021-06-24 09:26:42","faultSystem":"EMS","registerCode":"60d3df53e4b092b899c4b939"} }]

备注:上面模板中的terminal取自car表的auto_terminal字段,且设备必须在线状态,且校验tkui_car表

5.推送一个线程看下结果(前提是此设备必须在线状态,否则不会推)

一般推送场景(python)

导入kafka的包,然后模拟生产者向指定的kafka地址推送单个消息(这里推送的消息可以放到excel中,然后读取,后面如有需要可以优化),也可以写个循环语句,推送指定次数的消息

模拟业务场景往kafka推送消息的方法相关推荐

  1. 微信公众号java模拟登录_【微信公众平台改版后】Java模拟登录微信平台,主动推送消息给用户...

    一.简要说明 在博文<Java模拟登录微信公众平台,主动推送图文消息给用户>中提到使用Java语言登录微信公众平台,然后发送图文消息给用户,基本可以符合使用要求,但是在今年10月23日,微 ...

  2. 微信公众号批量推送java_微信批量关注公众号、推送消息的方法!

    批量自动添加公众号,并将消息推送至微信公众号. 关注公众号: public Response verifyuser(String user_name){ Request request = new R ...

  3. pusher php,Laravel利用pusher推送消息的方法详解

    一.注册pusher 1.注册https://pusher.com/ 2.获取key,密匙,app_id等 二.配置pusher 1.安装pushercomposer require pusher/p ...

  4. SpringBoot整合MQTT服务器实现消息的发送与订阅(推送消息与接收推送)

    场景 Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  5. tp5框架实现推送消息到企业微信机器人(从需求分析、方案设计、研发阐述)

    需求 目前需要接入消息推送的模块是任务中心,原因是任务中心是多人协作处理某个特定小组内的所有分析任务,在整个分析的过程中,一个任务的生命周期会经历若干个关键的状态节点, 当分析师或审批人触发了相关动作 ...

  6. PHP实现微信公众号主动推送消息

    这篇文章主要介绍了php实现微信公众号主动推送消息的方法,PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制,需要的朋友可以参考下. 通过学习借鉴朋友的实现方法进行整理,实现了PHP ...

  7. 如何在微信服务号每天推送消息?

    微信规则群发全部粉丝服务号每月4次,订阅号1天1次,服务号还有模板消息接口支持全部粉丝群发,除此之外所有微信提供的接口都不支持.只有满足特定场景的粉丝才能不限制地对粉丝推送消息,微号帮平台对此提供了4 ...

  8. MT4/MT5 EA通过微信,QQ实时推送消息的实现

    这篇为本人在CSDN原创文章,转载请注明 MT4/MT5很多人是通过邮件来进行信息推送,慢,不稳定,容易漏报. 相信很多人在寻找通过微信,QQ实时推送消息的方法,我自己也网上找了很久没有找到. 腾讯对 ...

  9. 服务器主动推送消息数据给客户端

    1 引言 这个问题第一次是我在实现一个导师的方案的时候所发现的,一开始我需要实现服务器与客户端的密钥协商和数据传递,服务器需要主动分发(推送)密钥给客户端,因为以前没有做过相关编码,后来只能想到用反向 ...

最新文章

  1. Java入门系列-09-循环结构
  2. MySQL慢查询日志总结
  3. 32 六角oled驱动_Alienware下半年开售55英寸OLED显示器,4K120Hz、95%DCI-P3
  4. EffectiveC++编程的50个建议
  5. CIO应用商业智能技术系统的重构思考
  6. 用oracle的java存储过程实现BLOB字段的字符串读取
  7. IIS故障:World Wide Web Publishing无法启动 提示1721错误
  8. 如何使用phpMyAdmin管理数据库
  9. jQuery源码解析之on事件绑定
  10. 100 个网络基础知识 看完成半个网络高手
  11. dw选项卡代码_Dreamweaver中js实现竖向选项卡或滑动门代码!急!!!
  12. java strom实例_strom wordcount java 实现案例
  13. json编辑器插件 vue_基于vue平台的json schema 编辑器
  14. Swift学习笔记 (四十二) 不透明类型
  15. 计算机 难题_寻找免费难题的最佳网站
  16. 2022KDD预讲 | 11位一作学者带你提前解锁优秀论文
  17. 数组的push()、pop()、shift()和unshift()方法
  18. C语言基础之个税计算器demo实现
  19. 2020年11月连云港计算机考试,连云港2020年中级经济师考试时间及考试科目
  20. Python-新浪微博爬虫采集数据

热门文章

  1. double小数点后最多几位_double类型,小数点后的位数
  2. ConEmu设置当前目录打开右键菜单
  3. 如何在ConEmu中打开右键菜单窗口 ?
  4. Flink SQL自定义聚合函数
  5. VS低版本打开高版本方法
  6. java美颜算法_java实现各种算法
  7. 12.8@烤仔建工 | 烤仔的新衣计划
  8. Vue进阶(幺柒捌):延伸阅读Sass、Scss、Less与Stylus编程特性
  9. 实现div的大小随着内容进行动态改变
  10. 大年读大学的时候因怀孕书写休学申请书