Для практики курса Highload Architect
Можно поднять приложение и сразу начать загрузку тестовых данных.
(!) Внимание: загрузка тестовых данных требует длительного времени (10-15 мин), т.к. генерируется большой объем данных, а так же включает в себя генерацию кэша новостных лент.
Для запуска выполните команду в корне проекта:
make demo
make load-users
При загрузке случайным образом формируются списки друзей пользователя (на кого он подписан), так же каждый пользователь подписывается на всех знаменитостей (id: 1, 10, 100, 1000, 10000, 100000).
make load-posts
или
docker compose run --rm php-fpm php -d memory_limit=2G artisan app:generate-posts-data --startId=1 --users=1000000 --posts=3
Параметры:
startId
- ID пользователя с которого начинается генерация постов (по умолчанию 1)users
- количество пользователей для которых будут сформированы посты (по умолчанию 1 млн.)posts
- количество постов на каждого пользователя (по умолчанию 3 шт.)
make cache-warm
или
docker compose run --rm php-fpm php -d memory_limit=2G artisan cache:warm --only_active=1 --active_sub_days=1 --batch_size=10000
Параметры:
only_active
- формировать кэш лент новостей только для активных пользователей (по умолчанию 1), которые авторизовались за указанное в параметре active_sub_days количество дней назадactive_sub_days
- количество дней (по умолчанию 1 день)batch_size
- объем пакета (по умолчанию 10000 лент пользователей)
Просмотр генерации лент: http://localhost/horizon/dashboard
- Способ через
makefile
Чтобы запустить приложение, выполните команду в корне проекта:
make setudp
- Способ без
makefile
Чтобы запустить приложение, выполните следующие команды в корне проекта:
docker compose up -d && \
docker compose run --rm php-fpm composer install --ignore-platform-reqs && \
docker compose run --rm php-fpm php artisan migrate:fresh
Коллекция Postman для тестирования API находится в папке /docs/
.
- Php-fpm
- Nginx
- Postgres