【发布时间】:2022-01-06 10:40:08
【问题描述】:
我正在使用 Pulsar 进行服务之间的通信,但我在对生产者和消费者的一个非常简单的测试中遇到了问题。
在 JUnit 4 测试中,我启动(我自己的包装器)一个 ZooKeeper 服务器、一个 BookKeeper bookie 和一个 PulsarService;配置应该很标准。
测试可以概括为以下步骤:
- 建立一个生产者;
- 建立消费者(例如,Pulsar 主题的读者);
- 检查message backlog(使用精确积压);
- 这是通过
PulsarAdmin#topics#getStats#subscriptions获取当前订阅来完成的 - 我希望它是 0,因为没有发送关于该主题的任何内容,但有时它是 1,但这似乎是另一个问题...
- 这是通过
- 构建一个新的生产者并同步向主题发送消息;
- 建立一个新的消费者并阅读该主题的消息;
- 我预计一封邮件会积压,但我实际上阅读了一封
- 新建生产者,同步发送4条消息;
- 再次获取消息,使用在步骤 5 中读取的 messageID 作为start message ID;
- 我预计这里会积压 4 条消息,并且大多数情况下这个值是正确的,但运行测试大约 10 次我始终得到 2 或 5 条
我尝试调试测试,但无法弄清楚这些值的来源;我是不是误会了什么?
【问题讨论】:
标签: java apache-pulsar