2012-06-30 2 views
1

사용자가 게시 한 데이터를 저장하려면 Azure 테이블을 사용하고 싶습니다. 사용자가 다른 사용자에게 무언가를 게시 할 때마다이 사용자에게 알림을 제공해야합니다. 필자는 PokeIn과 Comet 솔루션을 살펴보고 방법이 있는지 살펴 보았다. 이 테크닉을 처음 접했을 때 코드를 작성하기 전에이 접근법을 알고 싶습니다.Azure 테이블에 대한 SQLDependency 솔루션?

그러나 지금까지이 문제를 해결하기 위해 서버로 역방향 아약스 호출을 할 수 있습니다. 그런 다음 서버에서 무언가가 변경되면 while 루프를 사용하여 데이터베이스를 계속 점검합니다. 수면은 서버에 과부하가 걸리지 않도록 놓입니다. 그러나 이것은 많은 불필요한 검사를 데이터베이스에 도입합니다. 나는 긴 폴링을하는 방법에 관한 질문 here을 먼저 물었다. 그리고 그 중 하나가 SqlDependency 사용을 제안했습니다. 그러나 이것은 MS SQL 특정입니다. 가능한 경우 Azure 테이블에서 수행하는 방법을 알고 싶습니다.

일반적인 접근 방식에 대한 의견이나 대답은 크게 감사하겠습니다.

답변

3

나는 당신의 질문에 근본적으로 Windows Azure 테이블 (데이터베이스없이)을 사용하여 그러한 솔루션을 작성하는 첫 번째 단락에이 질문에 답하고 있습니다. (동료 SO 전문가는 다른 접근법을 가지고있을 수 있습니다). 기본적으로 Windows Azure 테이블은 키 값 쌍 데이터베이스이므로 SQLDependency와 같은 기능은 없습니다.

첫 번째 방법으로 Windows Azure 테이블과 Windows Azure 큐를 사용하면 이러한 솔루션을 만들 수 있습니다. Azure 테이블에 뭔가 쓸 때 Azure Queue에 메시지를 게시합니다. 별도의 스레드에서 대기열 상태를 계속 확인할 수 있으며 메시지가 있으면 필요한 조치를 취할 수 있습니다. 이 방법의 단점은 대기열을 끊임없이 들여다보고 폴링이 얼마나 공격적인지에 따라 거래 비용 ($ 0.001에 대해 약 10,000 개)이 추가되지만 공격적인 체크로 인해 많은 비용이 추가된다는 것입니다.

다른 해결책은 Windows Azure 테이블 및 서비스 버스를 사용하는 것입니다. 서비스 버스를 사용하면 대신 폴링을 사용할 필요가 없으며 테이블 업데이트가있을 때 알림을 받고 해결할 수있는 솔루션을 개발할 수 있습니다.

나는 사용자가 구현 한 솔루션을 보았으며 응용 프로그램 사용 가능성에 따라 비용이 다양하므로 코딩 복잡성이 있습니다. 조언과 정보를

Windows Azure Queues and Windows Azure Service Bus Queues - Compared and Contrasted

+0

감사 : 윈도우 Azure 큐 또는 서비스 버스를 선택하기 전에, 내가 더 나은 결정을 내릴 둘 사이의 차이를 이해하기 위해 아래의 기사를 읽고 제안! 나는 그 기사를 읽을 것이다. – starcorn

+0

나의 기쁨 .. 나는 토토로를 사랑한다 !! – AvkashChauhan

+0

안녕하세요. 서비스 버스를 사용하여 솔루션을 확인했습니다. 필자가 궁금해하는 한 가지, 필자는 Comet 솔루션을 사용해야 할 것입니다. 예 : Websync 또는 PokeIn? – starcorn

관련 문제