Я пытаюсь синхронизировать три микросервиса, которые у меня есть.RabbitMQ - лучшая практика
Для этого я внедрил RabbitMQ. Кажется, что сейчас все работает, но я не уверен, что я следую лучшей практике, и я не мог найти ссылку, чтобы посмотреть ее, может быть, кто-то может мне помочь?
Кратко о том, что я пытаюсь сделать: У меня есть один сервис, который должен обновить два других, каждой из услуг должны получить сообщение отправлено. У меня есть два типа сообщений (сохранить и удалить ресурс). * В случае неисправности очередь должна восстанавливать и повторно отправлять сообщения.
То, что я сейчас делаю: Я настроил обмен и каждый из моих потребителей подключиться к двум разным очередям, по одному для каждого типа сообщения (сохранение/удаление). Я использовал прямой обмен, чтобы позже фильтровать сообщения, хотя в настоящее время мне не нужно их фильтровать.
Каждая из очередей названа, и обмен, а также сообщения прочны, и я подхватил сообщения, которые я использовал.
Вопрос Должен ли я установить другую очередь для каждого типа события, или я должен отправлять сообщения на одной и той же очереди и фильтровать их? Является ли использование описанного выше RabbitMQ правильным решением проблемы. Что такое лучшая практика?
Благодарим вас за ответ! Я столкнулся с новой проблемой, если я не могу использовать сообщение, и я не понимаю его. Этот процесс не пытается и потребляет сообщение снова. Он никогда не переходит в состояние готовности в очереди, но он все еще находится в очереди. Любые предложения по его решению? – straiker2
вы должны попытаться поймать логику потребления, если есть какое-либо исключение, и вы уверены, что следующая попытка может быть успешной, вы можете отправить nack, чтобы вернуть сообщение в очередь, проверьте эту ссылку: http://stackoverflow.com/questions/28794123/Ack или NACK-в-RabbitMQ; и если вы уверены, что повторная попытка будет по-прежнему терпеть неудачу (на основе пойманного исключения), вы все равно должны отправить ack, а также запишите свое исключение для дальнейшего анализа. –