4

Извините за мой английский - если что-то неясно, спросите меня в комментариях - я разъясню это.электронная почта в архитектуре микросервиса

Я строю систему в архитектуре микросервиса. У меня есть одна служба с информацией о пользователе, одна услуга для «предложений» и одна услуга для «идей». Службы «предлагает» и «идеи» в сообществе (через Restful API) с услугой «Пользователь» при регистрации и других операциях. И мне интересно - как бороться с электронной почтой? Каждая служба имеет отдельный интерфейс и отправляет электронные письма после некоторых действий (например, когда какая-то третье лицо открывает ссылку с предложением, пользователь, создавший это предложение, получит электронную почту или когда какой-то пользователь создаст идею, менеджер получит электронную почту). Более того, в каждом интерфейсе службы менеджер может создавать «периодическую» рассылку с статистическими данными сезона или просто с некоторой другой информацией. Каждое служебное электронное письмо выглядит по-разному и имеет различный контент.

У меня есть много вариантов и не знаю, что будет лучше. Это некоторые предложения:

  1. Каждая услуга имеет свою собственную отдельную систему электронной почты и отправлять все виды по электронной почте (после того, как действия, и периодическое) независимо.
  2. «Пользовательская служба» имеет «движок» для отправки действий, а также периодические электронные письма и другие сервисы дают задание. Внутри задачи есть ссылка на услугу, которая дает задание, и эта ссылка будет генерировать содержимое электронной почты (например, статистические данные ведьмы в периодической электронной почте). Это решение является сложным ...
  3. «Пользовательская служба» имеет только движок для периодических электронных писем (задачи имеют ссылку на создание тела электронной почты ...), но электронная почта после отправки действий от каждого микросервиса indepenndent
  4. Создайте только новую микросервис для отправки электронной почты (периодический и «после действия») с соответствующим API. Конечно, каждая услуга, такая как «предложения», должна отправлять также ссылку (самим себе) в задание на рассылку - эта ссылка будет вызываться, когда будет отправляться периодическая электронная почта, и ответ на эту ссылку будет сгенерирован в теле письма ....

Какой из них будет лучше? Или может быть какая-то лучшая альтернатива?

ответ

4

Отправка электронных писем это как запрос к другой услуге (через SMTP). Таким образом, это хороший подход, когда каждый сервис сможет отправлять электронные письма.

Но, конечно, существует некоторая общая логика отправки электронных писем, таких как шаблоны рендеринга, отправка кода, конфигурации и т. Д. Эта логика должна быть разделена между службами через общий код (dll, package и т. Д.).

Итак, таким образом:

  1. Каждая услуга не зависит от другой службы, когда необходимо отправить по электронной почте
  2. Общий код для отправки электронной почты распределяется между службами
  3. Вы надеваете» t иметь развертывание, развертывание и сетевые накладные расходы в случае предоставления специализированной электронной почты

Недостатком этого подхода является то, что каждый сервис должен иметь тот же адрес электронной почты co nfiguration (SMTP-адрес, логин, пароль и т. д.). Но если вы делитесь конфигурациями между всеми службами, это не проблема.

 Смежные вопросы

  • Нет связанных вопросов^_^