背景:一个应用部署了两个Pod,消费MQTT时发现PodA的CPU打满,PodB的CPU基本未使用。查看日志发现,PodA消费到的数据比PodB多5倍。
猜测可能的结果如下:
-
因PodB的消费能力不足,MQTT做了负载均衡(未收到消息ACK不会继续发送下一条消息)。
将服务中的处理逻辑忽略,只做消费,立马返回ACK。验证结果:未出现负载不一致的情况。 -
发现两个Pod部署在不同节点,多次尝试过后发现总是某个IP段上有问题,怀疑和节点有关。
将服务强制部署在某个节点上。验证结果:未出现负载不一致的情况,猜测通过。
最后:节点池存在多个节点,分别将Pod部署在节点上,验证发现为可用区(机房)和中间件的可用区网络问题导致。问题到此解决。
标签:负载,部署,性能,PodB,导致,ACK,Pod,节点 From: https://www.cnblogs.com/qiuwang/p/18684984