MS Azure
Какие виды сервисов бывают в Service Fabric?
Виды сервисов в Service Fabric:
-
Stateless Services(Бестатусные сервисы):-
Описание: Сервисы, которые не сохраняют внутреннее состояние между вызовами.
-
Примеры использования: Веб-серверы, обработчики запросов, микросервисы, где состояние не нужно сохранять.
-
Преимущества: Легкость масштабирования, отсутствие необходимости синхронизации состояния.
-
-
Stateful Services(Сервис с состоянием):-
Описание: Сервисы, которые сохраняют состояние внутри Service Fabric.
-
Примеры использования: Системы, требующие сохранения состояния между вызовами, такие как корзины покупок, банковские системы.
-
Преимущества: Высокая доступность и надежность данных, встроенные механизмы репликации и восстановления.
-
-
Reliable Actors(Надежные акторы):-
Описание: Модель программирования на основе акторов, где каждый актор является экземпляром класса с состоянием и поведением.
-
Примеры использования: Игровые объекты, IoT устройства, личные профили пользователей.
-
Преимущества: Простота программирования, встроенная поддержка состояния и асинхронного выполнения.
-
Какие особенности и ограничения Azure Table Storage?
Azure Table Storage:
-
NoSQL хранилище:
- Хранилище данных без строгой схемы, подходящее для хранения структурированных данных.
-
Высокая масштабируемость:
- Поддержка больших объемов данных с горизонтальным масштабированием.
-
Доступ по ключам:
- Быстрый доступ к данным с использованием PartitionKey и RowKey.
-
Доступ через REST API:
- Доступ к данным через HTTP REST API.
-
Низкая стоимость:
- Экономически эффективное хранилище для больших объемов данных.
-
Интеграция с другими Azure сервисами:
- Легкая интеграция с другими сервисами Azure.
Ограничения:
-
Ограниченная функциональность запросов:
- Поддерживаются только простые запросы, отсутствие сложных операций фильтрации и агрегирования.
-
Ограниченный размер сущностей:
- Максимальный размер одной сущности – 1 МБ.
-
Ограничения на транзакции:
- Транзакции возможны только в пределах одной партиции (PartitionKey).
-
Ограниченная производительность при высоких нагрузках:
- Производительность может уменьшаться при интенсивном использовании.
Azure Table Storage – это высокомасштабируемое, экономичное NoSQL
хранилище данных, подходящее для хранения больших объемов структурированных
данных с быстрым доступом по ключам. Однако, оно имеет ограничения в
функциональности запросов, размере сущностей и транзакциях, что делает его не
всегда подходящим для сложных сценариев обработки данных.
Как бороться с проблемой холодного старта в Azure Functions?
Холодный старт происходит, когда функция активируется после периода бездействия, вызывая задержки из-за инициализации среды выполнения.
Способы борьбы с холодным стартом:
-
Использование
Premium PlanилиDedicated(App Service) Plan:-
Описание: Premium позволяет держать готовые экземпляры, а Dedicated требует настройки Always On. Это снижает задержки холодного старта; запуск новых экземпляров и инициализацию приложения все равно нужно учитывать.
-
Преимущества: Быстрый запуск, выделенные ресурсы.
-
Недостатки: Более высокая стоимость.
-
-
Pre-Warmed Instances(Тёплые инстансы):-
Описание: Premium Plan позволяет настраивать преднагрев инстансов, чтобы всегда иметь готовые к работе функции.
-
Преимущества: Снижение задержек при запуске.
-
Недостатки: Зависит от плана Premium.
-
-
Always OnвApp Service Plan:-
Описание: Для функций, размещенных в App Service Plan, включение опции Always On предотвращает усыпление приложения.
-
Преимущества: Постоянная готовность.
-
Недостатки: Увеличение затрат.
-
-
Регулярные вызовы (
Keep-Alive):-
Описание: Настройка периодических вызовов функции для поддержания активности.
-
Преимущества: Уменьшение частоты холодных стартов.
-
Недостатки: Может увеличить количество вызовов и связанные с этим затраты.
-
-
Разделение функций:
-
Описание: Разделение тяжеловесных и легковесных функций, чтобы минимизировать влияние холодного старта на критичные функции.
-
Преимущества: Оптимизация производительности для ключевых функций.
-
Недостатки: Усложнение архитектуры.
-
Для борьбы с проблемой холодного старта в Azure Functions можно использовать более дорогие планы (Premium или Dedicated), настроить преднагрев инстансов, включить Always On в App Service Plan, использовать keep-alive запросы или разделить функции на тяжеловесные и легковесные. Выбор подходящего метода зависит от требований к производительности и бюджета.
В чем отличие очередей и топиков в Azure Service Bus?
Очереди и топики в
Azure Service Bus
:
Очереди (Queues):
Описание:
-
Модель “точка-точка”: Сообщения передаются от отправителя к одному получателю.
-
Порядок: для упорядоченной обработки связанных сообщений используйте sessions с общим SessionId. Обычная очередь с конкурирующими получателями не гарантирует порядок завершения обработки.
-
Один получатель: Каждое сообщение обрабатывается только одним получателем.
-
Сценарии, где требуется гарантированная обработка сообщений одним потребителем.
-
Примеры: обработка заказов, задачи очереди.
Топики (Topics):
Описание:
-
Модель “публикация-подписка”: Сообщения передаются от отправителя к нескольким подписчикам.
-
Фильтрация и подписки: Подписчики могут получать только интересующие их сообщения с помощью правил фильтрации.
-
Много получателей: Каждое сообщение может быть получено и обработано несколькими подписчиками.
-
Сценарии, где одно сообщение должно быть доставлено нескольким потребителям.
-
Примеры: уведомления, рассылка событий.
Итог:
-
Очереди распределяют сообщения между конкурирующими получателями. Возможны повторные доставки; для FIFO по группе сообщений используются sessions.
-
Топики: Используются для передачи сообщений от одного отправителя к нескольким получателям, поддерживая модель “публикация-подписка” с возможностью фильтрации сообщений для подписчиков.