为什么我的storm拓扑结构跟不上?

falq053o  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(194)

我的硬件配置:
2 x nimbus:2 x 1 cpu@10核/20线程(centos报告40核)
19个监视器:2 x 1 cpu@12核/24线程(centos报告48核)
所有磁盘都是10k或更快的磁盘轴
所有机箱均为128gb ram
10gbit互连
Kafka有40个分区
我的拓扑结构是做简单,低cpu的工作。它获取一个大约25KB的json对象,将其解压,查询几个webservice(每个webservice都以不同的方式),将其转换为一个新对象,并将这个新对象发送到最终的webservice。
我没有计时任何元组,我的机器上的cpu使用率都非常低。

我编写了一个小应用程序来pingzookeeper并获取偏移量,并将其与kafka队列深度进行比较。时间戳是今天早上的。偏移量在kafka的所有40个分区上求和,zookeeper偏移量在所有20个消费者上求和。“lag”列是差值,括号中的值是每个心跳信号之间的差值(每15秒)。第一行显示偏移量增加了7条消息,但是延迟增加了13条。这意味着收到了20条消息,但只处理了7条。当拓扑结构最初启动时,它会保持不变,然后慢慢落后。

[7/26/2017 10:34:50 AM] Offset 35535228, lag 53983 (7, 13)
[7/26/2017 10:35:05 AM] Offset 35535234, lag 53990 (6, 7)
[7/26/2017 10:35:21 AM] Offset 35535237, lag 53992 (3, 2)
[7/26/2017 10:35:36 AM] Offset 35535243, lag 53998 (6, 6)
[7/26/2017 10:35:54 AM] Offset 35535247, lag 54004 (4, 6)
[7/26/2017 10:36:10 AM] Offset 35535251, lag 54013 (4, 9)
[7/26/2017 10:36:27 AM] Offset 35535258, lag 54018 (7, 5)
[7/26/2017 10:36:43 AM] Offset 35535267, lag 54024 (9, 6)
[7/26/2017 10:36:59 AM] Offset 35535276, lag 54028 (9, 4)
[7/26/2017 10:37:15 AM] Offset 35535283, lag 54041 (7, 13)
[7/26/2017 10:37:31 AM] Offset 35535293, lag 54063 (10, 22)
[7/26/2017 10:37:46 AM] Offset 35535310, lag 54078 (17, 15)
[7/26/2017 10:38:02 AM] Offset 35535320, lag 54084 (10, 6)
[7/26/2017 10:38:17 AM] Offset 35535326, lag 54091 (6, 7)
[7/26/2017 10:38:33 AM] Offset 35535330, lag 54100 (4, 9)
[7/26/2017 10:38:48 AM] Offset 35535334, lag 54103 (4, 3)
[7/26/2017 10:39:04 AM] Offset 35535339, lag 54116 (5, 13)
[7/26/2017 10:39:21 AM] Offset 35535342, lag 54120 (3, 4)
[7/26/2017 10:39:36 AM] Offset 35535349, lag 54124 (7, 4)
[7/26/2017 10:39:52 AM] Offset 35535351, lag 54134 (2, 10)
[7/26/2017 10:40:08 AM] Offset 35535355, lag 54142 (4, 8)
[7/26/2017 10:40:23 AM] Offset 35535357, lag 54146 (2, 4)
[7/26/2017 10:40:39 AM] Offset 35535359, lag 54149 (2, 3)
[7/26/2017 10:40:54 AM] Offset 35535365, lag 54160 (6, 11)

我下一步该去哪里?

qhhrdooz

qhhrdooz1#

bryan,尝试为你的拓扑设置acker的数量,我可以看到只有2个ackers执行器在为你的拓扑运行,你可以用这个conf.setnumackers(10)设置acker的数量。
这应该能解决你的问题。
如果我没说错的话,拓扑在一段时间后就开始失败了,对吧?

相关问题