Это пятая часть серии «Разработка клона Instagram», ссылки на другие части приведены ниже.

  1. Разработка клона Instagram: Введение.
  2. Разработка клона Instagram: служба обнаружения.
  3. Разработка клона Instagram: служба аутентификации.
  4. Разработка клона Instagram: медиасервис.
  5. Разработка клона Instagram: Post Service.
  6. Разработка Instagram Clone: ​​Graph Service.
  7. Разработка клона Instagram: служба новостной ленты.
  8. Разработка клона Instagram: служба шлюза.
  9. Разработка клона Instagram: интерфейсный сервис

Почтовый сервис — это прямой сервис, он обеспечивает CRUD-операции для пользовательских сообщений.

Он использует MongoDB в качестве хранилища данных и Apache Kafka в качестве системы обмена сообщениями.

Конечные точки почтовой службы

Заглянув в контроллер PostApi, вы обнаружите, что доступны следующие конечные точки.

POST "/posts"  //creates new post
DELETE "/posts/{id}" //deletes post by id
GET "/posts/me" // finds current user posts
GET "/posts/{username}" // find user posts
POST "/posts/in" // find posts by ids

Почтовый сервис и репозиторий

Он использует Spring data MongoDB, все, что вам нужно сделать, чтобы предоставить интерфейс и операции (в соответствии с соглашениями о данных Spring), а Spring предоставит вам реализации.

Здесь нет ничего особенного, я думаю, что имена методов являются описательными.

Кроме того, почтовый сервис говорит сам за себя, он предоставляет операции CURD для объекта Post (создание, обновление, удаление и т. д.). Вы обнаружите, что он использует PostEventSender для отправки сообщений Kafka, о которых я расскажу в следующем разделе.

Обмен сообщениями (сообщения Кафки)

Он использует облачный поток Spring, для получения дополнительной информации см. Служба аутентификации.

Как видите, он публикует событие в momentPostChanged в теме всякий раз, когда создается, обновляется или удаляется новый пост.

Нам нужно будет прослушивать эти события, чтобы обновлять ленту пользователей, что мы обсудим позже в службе ленты.

Для конфигурации kafka также обратитесь к Службе аутентификации.

Конфигурация безопасности

Все ресурсы защищены в почтовом сервисе, пользователь должен предоставить токен доступа для доступа к любому ресурсу.

Регистрация службы обнаружения

Как всегда, служба должна зарегистрироваться в службе обнаружения, чтобы другие службы могли ее найти.

Как видите, почтовая служба — это простая служба, ничего нового, я действительно не решался написать о ней учебник, но, чтобы завершить серию, я это сделал.