Показать сообщение отдельно
Старый 23.05.2018, 12:07   #28  
AlexeyS is offline
AlexeyS
Участник
 
404 / 339 (12) ++++++
Регистрация: 15.06.2004
Адрес: москва
Цитата:
Сообщение от fed Посмотреть сообщение
Вообще - похоже что этот Azure Service Fabric - это такая среда исполнения контейнеров типа Docker. При этом - ax там работает не в контексте IIS (который может быть даже не установлен),а где-то в контексте своего собственного процесса (axservice.exe), который где-то на каком-то хосте Service Fabric крутится. При этом, Service Fabric, вроде бы, может реплицировать состояние каких-то областей памяти между процессами на разных узлах кластера и из за этого, последовательные запросы одного и того же пользователя могут, в теории, вообще обрабатываться разными физическими серверами. Из за этого Тарик и рассказывает как остановить избыточные axservice.exe - как раз для того чтобы все запросы падали на один и тот же сервер, на котором у нас отладчик крутится...
Заинтересовался, полез читать: Service Fabric - это оркестратор контейнеров, который развертывает микрослужбы в кластере виртуальных машин. Микрослужбы это, например, ASP.Net Core или приложение любого типа.

Единицей развертывания является не сервис, а совокупность сервисов, называемая приложением — в манифесте приложения можно, кроме прочего, определить партиционирование сервиса для поддержания масштабируемости, а для отказоустойчивости в случае выхода из строя серверов ASF каждая партиция может иметь несколько экземпляров сервисов. И сервисы и приложения версионируются независимо, что позволяет обновлять приложение, не обновляя в нем все сервисы разом. Для развернутого приложения ASF создает нужное количество экземпляров сервисов, размещает на нодах кластера, запускает, синхронизирует состояние между экземплярами, пересоздает экземпляры для балансировки нагрузки.

Сервисы в ASF могут быть statefull и stateless, и судя по сценарию приложений для statefull, запросы одного пользователя будут обрабатываться на одном сервисе. Но на каком именно - неизвестно, это определяет балансировщик, поэтому и должен остаться только один.
С другой стороны, непонятно, как тонко разделено приложение на сервисы.
Например модуль Sales это приложение (в терминах ASF) как совокупность сервисов или нет? Создание заказа это отдельный сервис или нет? А создание нового клиента по ходу создания заказа это отдельный сервис?
За это сообщение автора поблагодарили: sukhanchik (2), Logger (3).