Storm 错误排查

By | 2022年9月12日

1 worker Netty-server-localhost-6700-worker-1 [WARN] Received invalid messages for unknown tasks. Dropping…

在客户那一遇这个错 Supervisor 就挂掉,且会一直重启。出错原因是我在 topology 代码中设了 setNumWorkers(2),但 supervisor docker 镜像中却将 worker 插槽端口设了1个 supervisor.slots.ports: [6700],本来自己的想法是用一个插槽来限定生产环境就用一个 worker,即使 topology 代码中设了两个也不会起作用。

实际情况却是,在流量大时 Supervisor 起了两个 worker,每次日志里出现这个错误,然后立即通过命令:kubectl exec -it yeenimbus-0 — bash -c “storm list” 查看,都可以看到当前 worker 数是 2 而不是1。

在客户那临时解决办法是手动平衡到1个 worker,调整命令是:kubectl exec -it yeenimbus-0 — bash -c “storm rebalance yee-topic-kafka-consumer -n 1”。最终解决办法是修改 topology 代码为 setNumWorkers(1) 。若仅修改 supervior 镜像的 storm.yaml 配置,添加一行 topology.workers: 1 ,这是无效的,你会看到在提交的拓扑打印输出中还是用了2个 Worker:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注