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

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

Все мы знаем, что такое архитектура микросервисов, и если вы не знаете, что это такое, есть много хороших статей, которые могут научить вас теоретической части.

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

Функции, которые мы собираемся разработать

Конечно, мы не сможем разработать все функции в Instagram, но мы выберем некоторые из основных функций, мы реализуем следующее:

  • Пользователь может зарегистрировать новую учетную запись.
  • Пользователь может войти в свою учетную запись.
  • Пользователь может просматривать свой профиль.
  • Пользователь может подписаться на других пользователей.
  • Пользователь может создать сообщение.
  • Пользователь может просматривать новостную ленту на основе сообщений пользователей, на которых он подписан.

Это видео показывает, что именно мы собираемся делать.

Чтобы проект поместился на локальном компьютере объемом 16 ГБ, мы исключим некоторые функции, такие как поиск и уведомления, которые мы рассмотрим в отдельных руководствах и проектах.

Целевая архитектура

Мы будем следовать приведенным ниже рекомендациям по использованию микросервисов:

  1. Единая ответственность: каждая служба делает только одно.
  2. Слабая связь: службы независимы друг от друга, можно обновлять и развертывать каждую службу, не затрагивая другие.
  3. Стандартное взаимодействие: сервисы взаимодействуют друг с другом через остальные API или обмен сообщениями (Apache Kafka).

Технологический стек, который мы собираемся использовать для разработки:

Java - Spring boot - Spring Cloud - JWT-аутентификация - MongoDB - Cassandra - Neo4j - Kafka - ReactJs - Ant Design.

Это будет наш основной технологический стек для большинства клонов Instagram.

Наш план

План такой:

Будьте на связи!

Другие статьи о микросервисах Java, которые могут вам понравиться