Skip to content

otusteamedu/public-lesson-2025-01-28

Repository files navigation

Репозиторий для публичного урока по курсу Symfony Framework

Инициализация проекта

  1. Запустить контейнеры командой docker-compose up -d
  2. Войти в контейнер командой docker exec -it php sh
  3. Установить необходимые пакеты командой composer install
  4. Инициализировать БД командой php bin/console doctrine:migrations:migrate
  5. Выйти из контейнера
  6. Войти в контейнер kafka командой docker exec -it kafka sh
  7. Выполнить команду kafka-topics --bootstrap-server localhost:9092 --create --topic user_log --partitions 4
  8. Выйти из контейнера
  9. Зайти в Kafdrop по адресу http://localhost:9900 и проверить, что категория создалась с 4 партициями.
  10. Зайти в Grafana по адресу http://localhost:3000 с логином/паролем admin / admin
  11. Добавить Datasource для Graphite с адресом hhtp://graphite:80
  12. Создать дашборд с метриками app.user_hit и app.user_miss

Запуск эксперимента без маршрутизации по топикам

  1. Войти в контейнер командой docker exec -it php sh
  2. Выполнить команду php bin/console test:produce 1000 39
  3. Выйти из контейнера
  4. В Grafana можно увидеть, что есть значительное количество промахов (пользователь обработан не тем же консьюмером, что был изначально)
  5. Остановить консьюмеры командой docker-compose stop supervisor
  6. Зайти в Kafdrop, там можно увидеть, что распределение по партициям не очень равномерное
  7. Удалить категорию user_log
  8. Войти в контейнер kafka командой docker exec -it kafka sh
  9. Выполнить команду kafka-topics --bootstrap-server localhost:9092 --create --topic user_log --partitions 4
  10. Выйти из контейнера

Запуск эксперимента с маршрутизацией по номеру партиции

  1. Войти в контейнер командой docker exec -it php sh
  2. Выполнить команду php bin/console test:produce 2000 39 -p
  3. Выйти из контейнера
  4. В Grafana можно увидеть, что промахов больше нет
  5. Остановить консьюмеры командой docker-compose stop supervisor
  6. Зайти в Kafdrop, там можно увидеть, что распределение по партициям почти равномерное (с точностью до 100 сообщений)
  7. Удалить категорию user_log
  8. Войти в контейнер kafka командой docker exec -it kafka sh
  9. Выполнить команду kafka-topics --bootstrap-server localhost:9092 --create --topic user_log --partitions 4
  10. Выйти из контейнера

Запуск эксперимента с маршрутизацией по ключу

  1. Войти в контейнер командой docker exec -it php sh
  2. Выполнить команду php bin/console test:produce 3000 39 -r
  3. Выйти из контейнера
  4. В Grafana можно увидеть, что промахов также нет
  5. Зайти в Kafdrop, там можно увидеть, что распределение по партициям тоже почти равномерное

Автор: Михаил Каморин

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published