我正在尝试在一个队列中创建多个订阅者,因此每条消息只能由其中一个读取。当我第二次尝试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属性,但没有帮助。
宝慕林4294392
相关分类