Автоматическое подтверждение на сервере потоковой передачи NATS с публикацией / подпиской

#nats.io #nats-streaming-server

#nats.io #nats-streaming-server

Вопрос:

Я случайно заметил, что при перезапуске моего демона подписчика NATS все сообщения обрабатываются снова, несмотря на то, что они были обработаны без ошибок.

опубликовать.перейти:

 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 доставляет все когда-либо полученные сообщения при каждом перезапуске subscriber daemon.

Ответ №1:

Я узнал. Это из-за durable := uuid.NewV4().String(), означает, что при каждом перезапуске демона мы получаем новое уникальное имя очереди durable, поэтому он снова обрабатывает все сообщения.