shell脚本一键向多个topic生产数据(可以指定速率),一键关闭生产消息

1,生产脚本

通过控住sleep 时间来控制速率

#!/usr/bin/bash
#要发送的数据文件
inpath=""
brokerlist=$2
topic=$3
properties=$4
#数据发送完成后到下次数据发送的时间间隔
sleeptime=$5
#文件的大小
num1=$6
#数据条数
num2=$7
#发送大小
count1=0
count2=0
#日志存储路径
logpath=$8
#循环次数
x=$9
# 增加一次输入文件的次数,减少生产者客户端的创建和销毁
for i in `seq 1 $x`
do
  inpath="$inpath $1"
done


#将进程id放到日志
echo $$
echo ${10}
echo $$ >> ${10}
while true
do
    stime=`date +%s%N`
    cat ${inpath} | kafka-console-producer.sh --broker-list ${brokerlist} --sync --topic ${topic} --producer.config ${properties} | > out.txt
    etime=`date +%s%N`
    count1=$(($count1+${num1}))
        count2=$(($count2+${num2}))
    ci=$(date "+%y-%m-%d %H-%M-%S")
    echo ${ci}发往-------${topic}的总数据大小为---${count1}"*$x"k >> ${logpath}
    echo ${ci}发往-------${topic}的总数据条数为---${count2}"*$x">> ${logpath}
    interval=`expr $etime - $stime`
    interval=`expr $interval / 1000000`
    echo 本次发送${num2}条数据所用时间为${interval}毫秒 >> ${logpath}
sleep ${sleeptime}
done

一键启动脚本

#!/usr/bin/bash
#参数一位睡眠时间  参数二循环次数 参数三位进程id存放文件
sh fkafka.sh date/aa.txt local:9002 aa producer.properties $1 73244 127600 log/aa.log $2 $3 >> log/aarun.log 2>&1 &
sh fkafka.sh date/bb.txt local:9002 bb producer.properties $1 19734 53985 log/bb.log $2 $3 >> log/bbrun.log 2>&1 &
sh fkafka.sh date/cc.txt local:9002 cc producer.properties $1 15595 47328 log/cc.log $2 $3 >> log/ccrun.log 2>&1 &

一键停止脚本

#参数为线程id所在目录
for line in `cat $1`
do
  kill -9 $line
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值