Java Nats 客户端:难以理解的错误消息“主题重新映射需要 Options.oldRequestStyle() ...”

问题描述

在我们的项目中,我们使用 NATS(服务器版本 2.1.9)作为我们的消息服务器。 我们经常在 Java Nats Client 中得到一些错误日志,例如:

`ERROR: Subject remapping requires Options.oldRequestStyle() to be set on the Connection`

它来自 io.nats.jnats 2.8 版(nats.client.impl.NatsConnection # deliveryReply)。

但我们没有发现系统有任何问题。

所以我的问题是:它怎么会发生,它会警告我们什么,我们该如何处理?

解决方法

请参阅对我们的 github 问题的回复,解决此问题:https://github.com/nats-io/nats.java/issues/424

简而言之,这是在我们的 2.9.0 版本中修复的。我在问题中回答:

我们能够在重复使用消息的条件下重现这一点。我也断断续续地看过它,但不能完全把我的手指放在上面。 事实证明,无论如何,错误消息都是一种误导。当我们无法将传入消息与发出请求的传出消息/未来进行匹配时,就会发生这种情况。这实际上应该永远不会发生。由于它是带外(异步),我们真的没有太多可以做的,所以打印消息总比没有好。 好消息是当前的 2.9.0-SNAPSHOT 有一个关于消息处理的修复程序,可以解决这个问题。您可以尝试升级到 2.9.0-SNAPSHOT 看看是否能解决您的问题吗? 2.9.0-SNAPSHOT 稳定且向后兼容,因为它几乎是 JetStream 独有的添加和改进。