具有发布/订阅功能的NATS流服务器自动确认

时间:2019-04-02 08:54:35

标签: nats.io nats-streaming-server

当我重新启动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流服务器都会发送曾经收到的所有消息。

1 个答案:

答案 0 :(得分:0)

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