模拟业务场景往kafka推送消息的方法
前言
项目最近需要接入一个推送功能,之前都是用云端内部接口模拟推送诊修消息的,但是实际触发场景是:诊修服务会将消息下发到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推送消息的方法相关推荐
- 微信公众号java模拟登录_【微信公众平台改版后】Java模拟登录微信平台,主动推送消息给用户...
一.简要说明 在博文<Java模拟登录微信公众平台,主动推送图文消息给用户>中提到使用Java语言登录微信公众平台,然后发送图文消息给用户,基本可以符合使用要求,但是在今年10月23日,微 ...
- 微信公众号批量推送java_微信批量关注公众号、推送消息的方法!
批量自动添加公众号,并将消息推送至微信公众号. 关注公众号: public Response verifyuser(String user_name){ Request request = new R ...
- pusher php,Laravel利用pusher推送消息的方法详解
一.注册pusher 1.注册https://pusher.com/ 2.获取key,密匙,app_id等 二.配置pusher 1.安装pushercomposer require pusher/p ...
- SpringBoot整合MQTT服务器实现消息的发送与订阅(推送消息与接收推送)
场景 Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- tp5框架实现推送消息到企业微信机器人(从需求分析、方案设计、研发阐述)
需求 目前需要接入消息推送的模块是任务中心,原因是任务中心是多人协作处理某个特定小组内的所有分析任务,在整个分析的过程中,一个任务的生命周期会经历若干个关键的状态节点, 当分析师或审批人触发了相关动作 ...
- PHP实现微信公众号主动推送消息
这篇文章主要介绍了php实现微信公众号主动推送消息的方法,PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息限制,需要的朋友可以参考下. 通过学习借鉴朋友的实现方法进行整理,实现了PHP ...
- 如何在微信服务号每天推送消息?
微信规则群发全部粉丝服务号每月4次,订阅号1天1次,服务号还有模板消息接口支持全部粉丝群发,除此之外所有微信提供的接口都不支持.只有满足特定场景的粉丝才能不限制地对粉丝推送消息,微号帮平台对此提供了4 ...
- MT4/MT5 EA通过微信,QQ实时推送消息的实现
这篇为本人在CSDN原创文章,转载请注明 MT4/MT5很多人是通过邮件来进行信息推送,慢,不稳定,容易漏报. 相信很多人在寻找通过微信,QQ实时推送消息的方法,我自己也网上找了很久没有找到. 腾讯对 ...
- 服务器主动推送消息数据给客户端
1 引言 这个问题第一次是我在实现一个导师的方案的时候所发现的,一开始我需要实现服务器与客户端的密钥协商和数据传递,服务器需要主动分发(推送)密钥给客户端,因为以前没有做过相关编码,后来只能想到用反向 ...
最新文章
- Java入门系列-09-循环结构
- MySQL慢查询日志总结
- 32 六角oled驱动_Alienware下半年开售55英寸OLED显示器,4K120Hz、95%DCI-P3
- EffectiveC++编程的50个建议
- CIO应用商业智能技术系统的重构思考
- 用oracle的java存储过程实现BLOB字段的字符串读取
- IIS故障:World Wide Web Publishing无法启动 提示1721错误
- 如何使用phpMyAdmin管理数据库
- jQuery源码解析之on事件绑定
- 100 个网络基础知识 看完成半个网络高手
- dw选项卡代码_Dreamweaver中js实现竖向选项卡或滑动门代码!急!!!
- java strom实例_strom wordcount java 实现案例
- json编辑器插件 vue_基于vue平台的json schema 编辑器
- Swift学习笔记 (四十二) 不透明类型
- 计算机 难题_寻找免费难题的最佳网站
- 2022KDD预讲 | 11位一作学者带你提前解锁优秀论文
- 数组的push()、pop()、shift()和unshift()方法
- C语言基础之个税计算器demo实现
- 2020年11月连云港计算机考试,连云港2020年中级经济师考试时间及考试科目
- Python-新浪微博爬虫采集数据