Azure Service Fabric - автоматизировать удаление / повторное создание службы - PullRequest
0 голосов
/ 18 декабря 2018

В нашем кластере Azure Service Fabric имеется служба, которая, по-видимому, зависает и теряет соединение с нашей базой данных примерно раз в 48 часов.Пока я не заставлю разработчика разобраться в проблеме, мой обходной путь должен был пойти и удалить сервис через Service Fabric Explorer, а затем немедленно заново создать его.Это временно исправляло проблему до тех пор, пока она снова не зависла.

Мой вопрос заключается в том, могу ли я в любом случае автоматизировать этот процесс?Пройдет как минимум месяц или два, прежде чем я смогу заставить разработчика разобраться в этом, поэтому я ищу возможность запускать процесс автоматически один раз в день.

1 Ответ

0 голосов
/ 18 декабря 2018

К сожалению, в Service Fabric нет механизма планирования, позволяющего выполнять подобные операции.

Решение для вас - запустить скрипт, который подключается к SF и выполняет пакет перезапуска кода .через powershell или через API .

Для powershell вы можете использовать Runbook автоматизации Azure или использовать функции Azure для вызова API врасписание.

Я думаю, что PowerShell проще, но оба должны работать.

Restart-ServiceFabricDeployedCodePackage , как следует из названия, заставитзавершите работу и перезапустите процесс и все реплики, размещенные в нем.Нет необходимости удалять и создавать заново, вы можете пропустить настройку службы.

В документации показана комбинация параметров, которые можно использовать вместе, в некоторых случаях некоторые параметры требуются при использовании с другими, документы должны выделятьсясовпадений, результатом будет что-то вроде этого:

Restart-ServiceFabricDeployedCodePackage -ApplicationName "fabric:/appname" -ServiceName "fabric:/appname/servicename" -PartitionId "b098c9f0-009a-458d-8b2d-8089fedcd014"

или конкретная реплика, подобная этой:

Restart-ServiceFabricDeployedCodePackage -ApplicationName "fabric:/repairs" -ServiceName "fabric:/repairs/web" -PartitionId "b098c9f0-009a-458d-8b2d-8089fedcd014" -ReplicaOrInstanceId 131896982398426643

.

Restart-ServiceFabricPartition также полезен, имеет те же эффекты:

Restart-ServiceFabricPartition -RestartPartitionMode AllReplicasOrInstances -ServiceName "fabric:/appname/service" -PartitionId "b098c9f0-009a-458d-8b2d-8089fedcd014"

Restart-ServiceFabricPartition устарел, чтобы заставить людей использоватьStart-ServiceFabricPartitionRestart, который рекомендуется для служб отключения, когда требуется надежность, например, для служб с отслеживанием состояния, это позволит избежать одновременной установки всех реплик.

Start-ServiceFabricPartitionRestart Я сам этим не пользовался, но это рекомендация для сервисов с отслеживанием состояния.

Сочетание параметров немного сложное, я рекомендую вампопробуйте с разными комбинациями.В некоторых случаях это удается, но выдает ошибку, не знаю почему!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...