shell脚步向kafka发送消息_shell脚本并发数据到kafka topic

shell脚本并发数据到kafka topic

需求:

每秒发送大量数据到kafka,验证下游系统性能,数据中的时间戳要求为当前时间,可以之间采集系统当前时间替换文件中旧的时间戳,保证每次发送的数据都为最新时间。

利用kafka自带的脚本,将待发数据写入文件中,然后通过读取文件 方式,将数据批量发送到kafka task节点

#在kafka master 节点用户home 目录下创建data 目录

[root@node1 home]# mkdir data

#进入data目录

[root@node1 home]# cd data/

#将准备好的数据放入data目录中

[root@node1 data]# ls

batch1-1000.log batch2-1000.log batch-send.sh

#编写batch-send.sh 脚本

[root@node1 data]# vi batch-send.sh

shell content:

#!/bin/bash

#响应Ctrl+C中断

trap 'onCtrlC' INT

function onCtrlC () {

echo 'Ctrl+C is captured'

exit 1

}

#kafka及data所在目录

dataPath=/home/data

kafkaPath=/usr/local/kafka

#broker list

brokerlist=192.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kafka 读取不到数据的原因可能有很多,以下是一些常见的可能性: 1. 消息被消费完了:如果你在一个 topic 的所有 partition 中都消费了所有消息,那么 Kafka 就无法再读取到新的消息。你可以使用 `kafka-console-consumer` 命令行工具检查一下某个 topic 的 partition 中是否还有未消费的消息。 2. 消费者组没有正确配置:如果你的消费者组中有多个消费者,那么每个消费者应该配置不同的 `group.id`,否则它们会共享 partition 中的消息,导致消息重复消费或者某些消息没有被消费。另外,如果你的消费者组中有消费者挂掉了,那么 Kafka 会重新平衡 partition 的分配情况,这时你可能需要等待一段时间才能再次读取到消息。 3. 消费者的 offset 不正确:Kafka 中每个 partition 的消息都有一个 offset,表示消息在 partition 中的位置。消费者需要记录自己在每个 partition 上已经消费的最后一个 offset,这样下次消费的时候就可以从正确的位置开始。如果你的消费者的 offset 不正确,可能会导致消息被重复消费或者某些消息没有被消费。 4. 网络问题:如果你的 Kafka 集群和消费者之间的网络出现问题,可能会导致消费者无法读取到消息。你可以检查一下集群的网络连接情况,或者尝试使用其他消费者来读取同样的消息。 5. 其他问题:还有一些其他的可能性,比如消息过期、数据格式问题等,你可以通过查看 Kafka 的日志或者启用更详细的日志来进一步排查问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值