重启pulsar broker 导致emqx cpu增高

版本信息

emqx: 5.2.1 3core+12replicant

pulsar: 3.0.2 5broker+5bookie+3zookeeper

插件:pulsar-erlang-client: 0.7.1

现象

1. 重启pulsar broker后,emqx replicant节点cpu升高;
2. replaylog 堆积;
3. pulsar 监控消息速率无变化;
4. 重启插件后恢复;

分析

其中一个集群所有replicant节点cpu都异常,重启插件后恢复,另外一个单节点集群,cpu上升一段时间后自行恢复,3个core节点cpu无波动(core节点无连接,即无消息转发)。所以推测:是重启broker,导致topic重新分配到其他broker,后插件重连broker 引起的bug,有以下依据:
1. 单点集群消息量比较小,能够自行恢复,排查pulsar broker及bookie日志,未发现pulsar有问题。通过pulsar监控,发布消费都正常;
2. 插件配置的replay目录有堆积,但是到pulsar的消息量并无明显的下降;
3. 仅仅重启emqx插件,cpu就恢复正常

截图

replay:

emqx cpu:

pulsar 速率

image

生产者数量:结合日志证明已重连emqx

image

日志:
只开启了error日志,emqx 中只有插件关闭连接的日志。

目前能提供的信息如上,后模拟当时的情况无法复现,还请帮忙分析下原因。

如果是自定义的插件(千差万别),可以叫开发的人一步步调下。
仅凭以上的信息,我也猜不出来。

GitHub - emqx/pulsar-client-erl: Apache Pulsar client for Erlang/Elixir 0.7.1 后的版本,有没修改replay或者关于pulsar的逻辑?

多少有点改了,
如果是和 0.7.2 (4.4.x 企业版本用)比的话,就是:
https://github.com/emqx/pulsar-client-erl/compare/0.7.1...0.7.2
如果是和 2.1.0 (5.x 的企业版本用)比的话,就是:
https://github.com/emqx/pulsar-client-erl/compare/0.7.1...2.1.0