基于http数据采集的稳定性测试

大数据测试关于数据的稳定性传输是至关重要的,在保证基本的功能可用之后,良好的稳定性是大数据产品质量的保证之一。

我在测试数据采集过程中,其中一种采集方式是http采集方式,这种方式具体是怎么采集的,

简单描述一下http数据采集的过程:

RD提供了模拟第三方往kafka打数据的jar包,这个jar加6个参数执行后(jar命令具体不列这里了),数据即可落到kafka。

但是,测试过程中,遇到一种情况,就是http采集的服务挂掉了,这样的话,第三方往kafka打的数据全部丢失,总结就是http采集服务的不稳定性导致第三方往kafka落盘存储数据失败。

回想一下原因:

应该是测试的不到位。。。。没有考虑到http数据采集服务的稳定性。。。

只确保数据能落盘存储到kafka,但是对于持续稳定的数据落盘未考虑周全。

于是我写了一个shell脚本,利用crontab定时跑任务:

基于http数据采集的稳定性测试

#!/bin/bash
#read  -p "please input your name: " name
echo "GOOD LUCK ~"
export mypath=/tmp/qy
export JAVA_HOME=/export/server/jdk
PATH=$PATH:$JAVA_HOME/bin

java -Xmx3000m -Xms3000m -server -d64 -Dfile.encoding=UTF-8 -Dfetch.threads=300 -classpath $mypath/:$mypath/DataApiCollectDemo.jar  $*

echo "END"

java -jar $mypath/DataApiCollectDemo.jar a55640b4-dc8c-4c48-8937-fd8f78b5490d 1b841c31-c217-418d-9f13-7e8ef76e7398 default "{\"flgtNo\":\"6\",\"updateTime\":\"20200709\",\"id\":\"8888\",\"flgtId\":\"9999\"}"  10  http://10.241.242.58:8829/v1/realsyn/http/send/data  <<EOF

pwd;
exit;
EOF

脚本还可以优化。。。后续有时间继续搞。。。

然后在crontab中定时执行如下:

*/10 * * * * /tmp/qy/demo.sh

每隔10分钟执行这个脚本,触发结果就是往kafka打数据,并通过http采集服务落盘到不同的存储类型(mysql/hbase/kafka)

然后实验了一天,成了,数据也稳稳落盘,

剩下的任务就是定时(每天或者其他时间)监控一下数据落盘日志即可,比如下图的监控:

基于http数据采集的稳定性测试

上图可以看到数据何时落盘,数据落盘条数,很清晰,说明我的定时脚本也是按时在跑,数据采集服务也没有问题。