Я решил использовать SCS, чтобы не зацикливаться на конкретном брокере сообщений. Сказав это, я не нашел способа подтверждать сообщения автоматически или вручную, и все, что я нашел, это вещи в Spring Cloud GCP, такие как PubSubTemplate. Проблема в том, что мой слушатель продолжает получать одни и те же сообщения снова и снова. Есть ли способ автоматически подтвердить сообщение, как только оно будет получено в SCS, независимо от реализации обмена сообщениями? Может быть, изменив какое-то свойство?





Подтверждение происходит автоматически, если обработчик сообщений не выдал исключение. Конечно, у конкретного связующего может быть проблема, но это помимо того, что я уверен, что связующее GCP не имеет этой проблемы.
По сути, я пытаюсь сказать, как вы сказали: «... используйте SCS, чтобы не застрять с ...». Я бы добавил: «... чтобы не застрять в ручном решении проблем с обменом сообщениями...». Это означает, что за ACK/NACK, повторные попытки, DLQ и т. д. отвечает SCSt и Spring в целом.
Да, есть крайние случаи, когда что-то может потребоваться обрабатывать вручную, и некоторые связыватели действительно предоставляют подтверждение и другие обратные вызовы, но мы еще не там, поскольку меня больше беспокоит симптом, который вы описываете - мой слушатель продолжает получать одни и те же сообщения снова и снова. Это вряд ли возможно, если такой слушатель не выдает исключение.
Итак, рассмотрите возможность предоставления более подробной информации или лучше разместите свой пример проекта, который воспроизводит проблему, где-нибудь на GitHub, чтобы мы могли взглянуть.
Нет, пожалуйста, не удаляйте вопрос. Это противоречит цели. Пусть другие члены сообщества получат от этого пользу, если они столкнутся с таким же / похожим вопросом.
поэтому логика AKC/NACK такова: если метод завершится без исключения - ACK, иначе - NACK?
Да, прошу прощения. Ваш ответ навел меня на правильный путь. Я слушал тему A и отправлял сообщения в B, но был еще один процесс, о котором я не знал, который повторно отправлял сообщения из темы B в тему A. Вскоре я удалю вопрос.