NATS流媒体服务器auto ack with Publish / Subscribe

问题描述 投票:0回答:1

当我重新启动我的NATS订阅者守护程序时,我意外地注意到,所有消息都被再次处理,尽管事实上它们已被处理而没有错误。

publish.go:

err := s.conn.Publish(subject, data)

subscriber.go

durable := uuid.NewV4().String()
err = s.conn.QueueSubscribe(
    subject,
    durable,
    handler, // here I just log something
    stan.StartWithLastReceived(),
    stan.DurableName(durable),
)

事实上,NATS流媒体服务器每次重新启动订阅者守护程序时都会传递所有收到的消息。

nats.io nats-streaming-server
1个回答
0
投票

我发现。这是因为持久:= uuid.NewV4()。String(),意味着每个守护进程重新启动我们获得新的唯一持久队列名称,因此它再次处理所有消息。

© www.soinside.com 2019 - 2024. All rights reserved.