为了账号安全,请及时绑定邮箱和手机立即绑定

Nats 无法为没有交付组的消费者创建队列订阅

Nats 无法为没有交付组的消费者创建队列订阅

Go
www说 2022-11-08 15:50:20
我正在尝试在一个队列中创建多个订阅者,因此每条消息只能由其中一个读取。当我第二次尝试QueueSubscribe时出现错误:cannot create a queue subscription for a consumer without a deliver group.我尝试在一个应用程序中创建两个订阅者并尝试运行两个实例,这是同样的错误。以下是订阅者:s1, err = js.QueueSubscribe(        "KEYS.group",        "queue",        func(m *nats.Msg) {            fmt.Printf("1: %s\n", m.Data)        },    )s2, err = js.QueueSubscribe(        "KEYS.group",        "queue",        func(m *nats.Msg) {            fmt.Printf("2: %s\n", m.Data)        },    )和出版商:_, err := js.AddStream(&nats.StreamConfig{        Name:     "KEYS",        Subjects: []string{"KEYS.group"},        Retention: nats.WorkQueuePolicy,  // tried with default policy if it may be relevant    })for i := 0; i < 20; i++ {        msg := fmt.Sprintf(`{"key": "%d"}`, i)        if _, err := js.Publish("KEYS.group", []byte(msg)); err != nil {            print(err)        }    }我也尝试添加Durable属性,但没有帮助。
查看完整描述

1 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

由于 nats 服务器(2.3.6)的版本而出现问题,更新到 2.7.2 后一切正常。库与旧版本不兼容。



查看完整回答
反对 回复 2022-11-08
  • 1 回答
  • 0 关注
  • 71 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信