ServiceControl은 NServiceBus와 분산 시스템을 구축, 모니터링 및 디버깅하는 도구를 포함하는 특정 서비스 플랫폼의 모니터링 두뇌입니다. ServiceControl은 시스템(감사 대기열), 오류(오류 대기열)를 통해 흐르는 모든 단일 메시지에 대한 데이터는 물론 사가, 엔드포인트 하트비트 및 사용자 지정 검사(제어 대기열)에 관한 추가 정보를 수집합니다. 그런 다음 정보는 HTTP API 및 SignalR 알림을 통해 ServicePulse 및 ServiceInsight에 노출됩니다.
자세한 내용은 ServiceControl 설명서를 참조하세요.
ServiceControl, ServiceControl.Audit 및 ServiceControl.Monitoring은 다음 단계에 따라 로컬로 실행/디버깅할 수 있습니다.
app.config
파일을 편집합니다.설정 방법을 보여주는 비디오 데모는 특정 YouTube 채널에서 볼 수 있습니다.
모든 컨테이너는 각 빌드에서 생성되어 다양한 인스턴스 유형에 이름으로 액세스하고 로컬로 실행할 수 있는 GitHub 컨테이너 레지스트리로 푸시됩니다.
인스턴스를 처음 실행하는 경우 필요한 인프라를 설정해야 합니다. 이렇게 하려면 선택한 전송 및 지속기를 사용하도록 인스턴스를 구성한 후 설정 모드에서 실행하세요. 이는 각 인스턴스의 launchSettings.json
파일에 정의된 Setup {instance name}
시작 프로필을 사용하여 수행할 수 있습니다. 설정 모드에서 시작하면 인스턴스가 평소대로 시작되고 설정 프로세스를 실행한 후 종료됩니다. 이 시점에서는 비설정 시작 프로필을 사용하여 인스턴스를 정상적으로 실행할 수 있습니다.
로컬 테스트를 돕기 위해 SCMU에서 새 인스턴스를 설정할 때 사용 가능한 전송 목록에 학습 전송이 추가되었습니다. 이를 사용할 수 있으려면 true
값으로 ServiceControl_IncludeLearningTransport
환경 변수를 생성해야 합니다.
CI 워크플로를 사용한 테스트는 다음 비밀에 따라 달라지며, 이는 작업 및 종속봇 비밀 모두에 대해 정의되어야 합니다. 이러한 비밀의 특정 값은 ServiceControl Repo Secrets 라는 보안 메모에 저장됩니다.
LICENSETEXT
: 특정 소프트웨어 라이센스 텍스트AWS_ACCESS_KEY_ID
: SQS 테스트용AWS_SECRET_ACCESS_KEY
: SQS 테스트용AWS_REGION
: SQS 테스트용 모든 테스트를 항상 실행하려면 많은 리소스가 필요합니다. 테스트는 ServiceControl_TESTS_FILTER
환경 변수를 기반으로 필터링됩니다. SQS 전송 테스트와 같은 하위 집합만 실행하려면 변수를 ServiceControl_TESTS_FILTER=SQS
로 정의합니다. 다음 목록에는 가능한 모든 ServiceControl_TESTS_FILTER
값이 포함되어 있습니다.
Default
- 전송 관련이 아닌 테스트만 실행합니다.AzureServiceBus
AzureStorageQueues
MSMQ
RabbitMQ
SqlServer
SQS
참고: 변수가 정의되지 않으면 모든 테스트가 실행됩니다.
단계:
솔루션 구축
파워셸 7 열기
ServiceControl git repo 폴더 deployPowerShellModulesParticular.ServiceControl.Management
에 대한 경로를 지정하여 모듈을 가져옵니다.
Import-Module - Name S:ServiceControldeployPowerShellModulesParticular.ServiceControl.Management - Verbose
Set-ExecutionPolicy Unrestricted
이제 모듈을 성공적으로 가져왔으므로 ServiceControl PowerShell 스크립트 중 하나를 입력하여 테스트해 보세요. 예: 다음은 새로운 ServiceControl 인스턴스를 생성합니다.
$serviceControlInstance = New-ServiceControlInstance `
- Name ' Test.DEV.ServiceControl ' `
- InstallPath C:ServiceControlBin `
- DBPath C:ServiceControlDB `
- LogPath C:ServiceControlLogs `
- Port 44334 `
- DatabaseMaintenancePort 44335 `
- Transport ' RabbitMQ - Direct routing topology (quorum queues) ' `
- ConnectionString ' host=localhost;username=guest;password=guest ' `
- ErrorQueue errormq `
- ErrorRetentionPeriod 10 : 00 : 00 : 00 `
- Acknowledgements RabbitMQBrokerVersion310