У нас есть приложение на основе микросервиса, которое использует Azure ServiceBus.Мы разворачиваем одну из служб (менеджер саги) как консольное приложение .Net Core в док-контейнере (Linux).Мы используем docker-compose, и группа из 2 контейнеров (включая консольное приложение) развертывается в экземпляре контейнера Azure.
Мы используем MassTransit для работы с Azure ServiceBus.
Консольное приложение (менеджер саги) запускает служебную шину с помощью метода MassTransit.BusControlExtensions.Start ().
Более или менее на этом этапе консольное приложение (менеджер саги) заполнено и готово.
Sidenote:рассматриваемое приложение (диспетчер саг) запускает автоматный конечный автомат
Теперь, если мы остановим или удалим контейнер с диспетчером саг,а затем restart it - он прекращает получать сообщения шины.
Кажется, что новый экземпляр менеджера саги (thread?) создается с при каждом перезапуске - в то время какстарый экземпляр (поток?) сохраняется как-то .
Даже когда мы полностью удаляем ресурс Container Instance в Azure - мы можем все еще наблюдатьчто автобус мессаges что-то подхватывает ...
приложение контейнера все еще живо после удаления самой группы контейнеров
Есть ли способ окончательно убить отключенный экземпляр /нить?
Кто-нибудь знаком с таким поведением Azure Экземпляры контейнера ?
PS в описанных сценариях операции остановки / удаления всегда успешны
PS2: вот файл yaml, используемый для развертывания проблемной группы контейнеров с помощью команды az container create :
apiVersion: 2018-10-01
location: westeurope
name: #{groupName}#
properties:
containers:
- name: saga-aci
properties:
image: #{acrLoginServer}#/sagaazure:latest
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 80
- port: 443
- port: 9350
- name: proxymanager-aci
properties:
image: #{acrLoginServer}#/proxymanager:latest
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 22999
- port: 24000
osType: Linux
ipAddress:
type: Public
ports:
- protocol: tcp
port: '80'
#- protocol: tcp
#port: '8080'
- protocol: tcp
port: '22999'
- protocol: tcp
port: '24000'
- protocol: tcp
port: '443'
- protocol: tcp
port: '9350'
imageRegistryCredentials:
- server: #{acrLoginServer}#
username: #{acrName}#
password: #{acrPassword}#
tags: null
type: Microsoft.ContainerInstance/containerGroups
возможно, это проблема рестарполитики?