Azure Service Bus 에뮬레이터 개요
Azure Service Bus 에뮬레이터는 Service Bus 서비스에 대한 로컬 개발 환경을 제공합니다. 에뮬레이터를 사용하여 클라우드 간섭으로부터 격리된 서비스에 대한 코드를 개발하고 테스트할 수 있습니다.
이점
에뮬레이터 사용의 주요 이점은 다음과 같습니다.
- 로컬 개발: 에뮬레이터는 로컬 개발 환경을 제공하므로 오프라인으로 작업하고 네트워크 대기 시간을 방지할 수 있습니다.
- 비용 효율성: 에뮬레이터를 사용하여 클라우드 사용 비용을 발생시키지 않고 애플리케이션을 테스트할 수 있습니다.
- 격리된 테스트 환경: 격리된 코드를 테스트하여 클라우드의 다른 활동이 테스트에 영향을 주지 않도록 할 수 있습니다.
- 최적화된 내부 개발 루프: 에뮬레이터를 사용하여 애플리케이션을 클라우드에 배포하기 전에 신속하게 프로토타입을 만들고 테스트할 수 있습니다.
참고 항목
Service Bus 에뮬레이터는 Microsoft 소프트웨어 사용 조건에 따라 사용할 수 있습니다.
Service Bus 에뮬레이터는 Service Bus Explorer를 오픈 소스 커뮤니티 소유와 호환되지 않습니다.
기능
에뮬레이터는 다음과 같은 기능을 제공합니다.
- 컨테이너화된 배포: Docker 컨테이너(Linux 기반)로 실행됩니다.
- 플랫폼 간 호환성: Windows, macOS 및 Linux를 비롯한 모든 플랫폼에서 사용할 수 있습니다.
- 구성 가능성: JSON 제공 구성을 사용하여 Service Bus 엔터티 수를 관리할 수 있습니다.
- 스트리밍 지원: AMQP(고급 메시지 큐 프로토콜)를 사용하여 스트리밍 메시지를 지원합니다.
- 관찰성: 콘솔 및 파일 로깅을 비롯한 관찰 기능을 제공합니다.
알려진 제한 사항
에뮬레이터의 현재 버전에는 다음과 같은 제한 사항이 있습니다.
- JMS 프로토콜을 사용하여 메시지를 스트리밍할 수 없습니다.
- 분할된 엔터티는 에뮬레이터와 호환되지 않습니다.
- 클라이언트 쪽 SDK를 통한 즉석 관리 작업은 지원하지 않습니다.
참고 항목
컨테이너를 다시 시작한 후에는 데이터 및 엔터티가 에뮬레이터에 유지되지 않습니다.
클라우드 서비스와의 차이점
Service Bus 에뮬레이터는 개발 및 테스트 목적으로만 사용되므로 에뮬레이터와 클라우드 서비스 간에 기능적 차이가 있습니다.
에뮬레이터는 다음과 같은 고급 기능을 지원하지 않습니다.
- 가상 네트워크 통합, Microsoft Entra ID 통합, 활동 로그 및 UI 포털과 같은 Azure 기능
- 자동 크기 조정 기능
- 지역 재해 복구 기능
- 대용량 메시지 지원
- 시각적 메트릭 및 경고
참고 항목
에뮬레이터는 개발 및 테스트 시나리오에만 사용됩니다. 모든 종류의 프로덕션 사용을 권장하지 않습니다. 에뮬레이터에 대한 공식적인 지원은 제공하지 않습니다.
사용 할당량
Service Bus 클라우드 서비스와 마찬가지로 에뮬레이터는 사용량에 대해 다음과 같은 할당량을 제공합니다.
속성 | 최댓값 | 제한 내에서 구성할 수 있는 사용자 |
---|---|---|
지원되는 네임스페이스 수 | 1 | 아니요 |
네임스페이스의 엔터티(큐/토픽) 수 | 50 | 예 |
토픽당 구독 수 | 50 | 예 |
토픽당 상관 관계 필터 수 | 1000 | 예 |
네임스페이스에 대한 동시 연결 수 | 10 | 예 |
엔터티(큐/토픽) 또는 구독 엔터티에 대한 동시 수신 요청 수 | 200 | 예 |
메시지 크기 | 256 KB | 아니요 |
큐 또는 토픽 크기 | 100MB | 아니요 |
메시지 TL(Time to Live) | 1시간 | 예 |
할당량 구성 변경
기본적으로 에뮬레이터는 config.json 구성 파일과 함께 실행됩니다. 필요에 따라 다음 방법으로 이 파일을 편집하여 Service Bus와 연결된 할당량을 구성할 수 있습니다.
- 엔터티: 지원되는 할당량에 따라 Service Bus 엔터티를 더 추가할 수 있습니다.
- 로깅: 에뮬레이터는 콘솔, 파일 또는 둘 다에 대한 로깅을 지원합니다. 개인 기본 설정에 따라 선택할 수 있습니다.
Important
에뮬레이터를 실행하기 전에 JSON 구성의 변경 내용을 제공해야 합니다. 변경 내용은 즉시 적용되지 않습니다. 변경 내용을 적용하려면 컨테이너를 다시 시작해야 합니다.
구성 파일에서 미리 설정된 네임스페이스(name
)의 이름을 바꿀 수 없습니다.
디버깅 로그
테스트하는 동안 콘솔 또는 파일 로그를 사용하면 예기치 않은 오류를 디버그할 수 있습니다. 로그를 검토하려면 다음을 수행합니다.
- 콘솔 로그: Docker 데스크톱 UI에서 컨테이너 이름을 선택합니다.
- 파일 로그: 컨테이너에서 /home/app/EmulatorLogs로 이동합니다.