Worksheetsглава 9: Катимся в город на шине сообщений.
Total questions: 17
Worksheet time: 14mins
Какова основная цель использования шины сообщений в микросервисной архитектуре?
Уменьшение нагрузки на БД
Обеспечение асинхронного взаимодействия между
сервисами
Ускорение HHTP-запросов
Хранение состояния приложения
Что такое событийно-ориентированная архитектура?
Архитектура, в которой компоненты взаимодействуют друг с другом посредством отправки запросов и ожиданий ответов
Архитектура, основанная исключительно на централизованной обработке данных
Архитектура, построенная вокруг передачи асинхронных событий между компонентами
Архитектура, где все компоненты работают синхронно, блокирую выполнение до завершения каждой операции
Какова роль шины сообщений в событийно-ориентированной архитектуре?
Шина обеспечивает синхронную передачу команд
Шина служит каналом связи для обмена сообщениями и событиями между компонентами
Шина предназначена исключительно для хранения данных
Шина - это база данных
Какие преимущества предлагает событийно-ориентированный подход в сравнении с традиционной монолитной структурой?
Гибкость и масштабируемость
Слабое связывание
Возможность параллельной обработки операций
Упрощает отладку
Почему события предпочтительнее хранить в виде объектов, а не простых строк?
Объекты позволяют передавать дополнительные метаданные
Объекты имеют четкую структуру полей, проще валидировать
Объекты удобнее обрабатывать
Строки требуют ручного парсинга и уязвимы к ошибкам, таким как опечатки, невалидные данные
Что такое события?
События - простые классы данных, которые определяют структуры для данных на входе в систему и сообщений внутри системы
События - синглтоны, которые хранят глобальное состояние системы, чтобы все обработчики могли его читать и менять
События — специализированные методы классов, предназначенные для управления поведением программы, такие как запуск функций или изменение состояния приложения
Может ли быть несколько обработчиков у одного события?
Да
Нет
Обработчики событий - это ...?
Монолитные компоненты, которые управляют всей бизнес-логикой системы
Специальные переменные, хранящие промежуточные значения данных и управляющие состоянием системы
Функции или классы, которые получают событие и выполняют соответствующую бизнес-логику
Обработчики событий НЕ могут?
Обращаться к модели или внешним службам
Инициировать другие события
Изменить сам факт произошедшего события
Выполняться многократно
Какой костыль пришлось вставить в шину сообщений?
Шина возвращает результаты
Дополнительный уровень шифрования сообщений
Принудительное удаление устаревших сообщений
Реализовали жесткое ограничение количества одновременно обрабатываемых сообщений
Как нужно изменить сервисную службу, чтобы она стала обработчиком события events.BatchCreated?
Выберите код, который максимально описывает, что из себя представляет шина сообщений в конце главы 9
В какой последовательности происходит обновление приложения при добавлении нового события,
согласно 9 главе?
Новое событие -->
unit-tests -->
обработчик события -->
репозиторий -->
модель предметной области -->
шина сообщений
Новое событие -->
модель предметной области -->
unit-tests -->
обработчик события -->
репозиторий -->
шина сообщений
Новое событие -->
шина сообщений -->
модель предметной области -->
репозиторий -->
обработчик события -->
unit-tests
Во что преобразовалось приложение при изменении внутренней структуры?
Процессор сообщений
Кофеварка новостей
Процессор событий
Термостат коммуникаций
Определите основные плюсы приложения - процессора сообщений
Изящная структура данных на входе в систему
Процессор сообщений не требует входных данных и может работать без них
Нет необходимости структурировать данные, все обрабатывается в произвольном формате
Обработчики сообщений равносильны сервисным службам
Поговорим о минусах приложения - "процессора - сообщений". К минусам относятся?
Дублирование между объектами модели и событиями
Отладка превращается в детектив
Сообщения всегда теряются при перезапуске приложения
Нет гарантированного момента "окончания"
Найди себя на картинке
