2012-01-25 2 views
2

Azure SB에는 여러 가지 주제가 있으며 준비에서 프로덕션으로의 VIP 스왑을 통해 환경을 지속적으로 업데이트합니다.ServiceBus 처리 기술 ReceiveMode.ReceiveAndDelete를 사용할 때 Azure 스테이징에서 실행되는 항목

인스턴스가 준비에서 실행되는 경우 구독자가 프로덕션 슬롯에서 실행중인 인스턴스로 이벤트를 보내려는 메시지를 읽고 삭제하지 못하게해야합니다.

해결 방안 내가 생각해 낸 해결책은 이름에 RoleEnvironment.SubscriptionId가 포함 된 구독을 만드는 것입니다. 그런 다음 사용하지 않는 구독을 방지하기 위해 RoleEntryPoint.OnStop() 중에이 항목을 삭제합니다.

더 세련된 해결책이 있습니까? 분명히 분명한 사실이 있습니까?

답변

0

한 가지 방법은 응용 프로그램이 이해할 수있는 구성 설정을 사용하는 것입니다. 그런 다음 스테이징/프로덕션 환경간에 변경할 수 있으며 동일한 구성 값을 사용하여 프로덕션 환경에서 원하지 않는 것을 활성화/비활성화 할 수 있습니다. 서비스 버스의 경우 준비 및 프로덕션 네임 스페이스를 만든 다음 url을 config에 넣을 수 있습니다.

+0

문제는 생산 또는 준비 중인지 여부를 감지하는 "좋은"방법이 없다는 것입니다. 그것이 설정에서 가져온다면 그 구성 포스트 스왑으로의 어떤 변화 든 다운 타임이 필요합니다. –

+0

나는 이것 좀더 연구하고 선택하면 구성 변경에 재시작을 막을 수 있음을 나타내는 단계를 발견 : http://www.codeproject.com/Articles/63977/Windows-Azure-Development-Deep-Dive-Working- With-C –