You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jnats创建NATS Stream时报JetStream超时无响应如何解决?

问题原因

核心问题是你启动NATS Docker容器时没有开启JetStream功能:NATS服务默认禁用JetStream特性,所以客户端的JetStream相关请求(创建Stream)无法得到服务端响应,最终触发超时异常。
你代码中每次调用接口都新建NATS连接的写法属于优化项,不是本次报错的直接诱因。

解决方案

1. 启动带JetStream功能的NATS容器

启动容器时追加-js参数开启JetStream特性,命令如下:

docker run -p 4222:4222 -ti nats:latest -js

如果需要持久化JetStream数据,可额外添加存储挂载配置,本地测试用上面的命令即可。

2. (可选)代码优化建议

当前接口每次调用都会创建新的NATS连接,建议将连接改为单例全局复用,避免频繁创建销毁连接浪费资源,参考实现:

@Component
public class NatsProducer {
    private Connection connection;

    // 项目启动时自动初始化连接
    @PostConstruct
    @SneakyThrows
    public void openConnection() {
        connection = Nats.connect();
    }

    @SneakyThrows
    public void openStream(String name, String sub) {
        JetStreamManagement jsm = connection.jetStreamManagement();
        StreamConfiguration conf = StreamConfiguration.builder()
                .name(name)
                .subjects(sub)
                .storageType(StorageType.Memory)
                .build();
        StreamInfo streamInfo = jsm.addStream(conf);
        JsonUtils.printFormatted(streamInfo);
    }
}
验证

重启带JetStream的NATS容器后再次调用接口,即可正常创建Stream,不会再抛出超时异常。

内容的提问来源于stack exchange,提问作者Pavel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:09:03