Разбор архитектуры Amazon: покупка товара

1. Когда пользователь размещает заказ, то запрос уходит в Сервис заказов.
2. Создается запись в Redis с идентификатором заказа, датой, временем и временем истечения заказа.
3. Заказ сохраняется в базе данных заказов и включает множество таблиц, такие как таблица клиентов, товаров и заказов.
4. Перед оплатой происходит инвентаризация с помощью Сервиса склада товаров, чтобы избежать заказов на отсутствующие товары.
5. После успешного обновления инвентаризации выполняется оплата через платежный шлюз, и результаты могут быть успехом, отказом или отсутствием ответа.
[img https://static.tildacdn.com/tild6232-3632-4532-a336-323164643663/image_1203.jpg]
6. Сервис обработки заказов отвечает за жизненный цикл заказа, т. е. любые изменения, происходящие с заказом после размещения, например, получение сведений о заказе для отслеживания или получение заказов по статусу и т. д.
7. Сервис историчности заказов предоставит подробную информации о доставленных или отмененных заказах.
8. Сервис архивности получает из Сервиса обработки заказов все заказы со статусом Отмена, а затем отдаст эти заказы в Сервис историчности.
[img https://static.tildacdn.com/tild3030-3938-4265-a536-333565626564/image.jpg]
10. Kafka непрерывно собирает события на каждом этапе. Каждый раз, когда размещается заказ или его статус меняется на «в пути» или «доставлен», продавец или клиент должны получать уведомления. Этот процесс обеспечивается через Сервис уведомлений.
11. Kafka соединена с Spark jobs, в ней будут события, например, какие продукты являются наиболее востребованными за последний час или день, какие товары наиболее популярны в списке желаний и т. д. позволит создавать персонализированные рекомендации для пользователей.
[img https://static.tildacdn.com/tild6533-3961-4663-b338-396231303166/image-1.jpg]
Вопрос – ответ
Почему используется MySQL?
Мы не хотим, чтобы два пользователя могли заказать последний экземпляр последних AirPods на нашем складе только потому, что наша база данных не смогла быстро отразить изменения. Именно поэтому нам необходимы ACID-свойства реляционных баз данных, и, следовательно, MySQL.

Что такое Spark jobs?
Spark jobs" (задачи в Spark) - это вычислительные задачи, которые выполняются с использованием Apache Spark, открытого фреймворка для обработки больших объемов данных. Spark jobs представляют собой единицы работы, которые могут включать в себя выполнение различных операций, таких как фильтрация, преобразование, агрегирование и анализ данных.

Зачем нужна Kafka в этом процессе?
В нее отправляют различные события. Например, когда заказ отменен и отправить уведомление.

Зачем нужен Redis в этом процессе?
При вызове Сервиса заказов создается запись в Redis с идентификатором, датой и временем размещения заказа и временем истечения, после чего уменьшается количество товаров в Сервисе склада товаров, прежде чем перенаправить пользователя на оплату, чтобы избежать проблем с недостаточным количеством товара.

В чем отличие Kafka и Redis?
Kafka используется для передачи и распространения событий, в то время как Redis используется для временного хранения информации о заказах и обеспечения быстрого доступа к этим данным.

System Analyst: Учись и практикуй

Выгодные Новогодние комбо до 31 декабря
24:24:24:24
Дней
Часов
Минут
Секунд
Our Website is Almost Ready
Launch a targeted campaign.
Scale your infrastructure with our simple service.
Days
Hours
Minutes
Seconds