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: