2017-05-10 4 views
0

제 질문은 서비스 버스의 수신기가 새 메시지를 수신하는 방법입니다. 일정 시간이지나거나 서비스 버스가 연결된 수신기에 새로운 메시지를 푸시하면 새로운 메시지에 대해 서비스 버스에 쿼리 요청을 보냅니 까?메시지가 queue/subscription에서받는 사람에게 보내는 방법은 무엇입니까?

.NET 클라이언트 라이브러리를 사용하고 있으며 기본적으로 SBMP 프로토콜을 사용합니다.

+0

어떤 클라이언트 및 프로토콜 (SBMP 또는 AMQP)을 사용합니까? –

+0

.NET 클라이언트 라이브러리를 사용하고 있으며 기본적으로 SBMP를 사용합니다. –

답변

1

수동 수신 (또는 일괄 처리 수신)을 수행 할 때 서버는 요청한 내용 (또는 요청한 내용보다 적은 경우 그 내용)을 제공하므로 중요하지 않습니다. 전송과 관계없이 콜백과 함께 OnMessage API를 사용하는 경우 밀거나 당긴 경우에도 각 메시지에 콜백 호출이 발생합니다. SBMP 메시지는 클라이언트가 브로커에서 폴링합니다. AMQP를 사용하면 브로커가 클라이언트에 푸시합니다.

1

내 대답은 AMQP (링크 ->https://github.com/Azure/azure-service-bus-java)를 통해 실행되는 Azure Service Bus SDK를 의미합니다.

MessageReceiver 개체는 필요할 때마다 대기열에서 메시지를 수신하는 데 사용됩니다.

이 클래스에는 서버 대기 시간을 매개 변수로 사용하는 수신 기능이 있습니다 (기본값은 30 초).

대기열에 메시지가 없으면 즉시 반환하지 않고 30 초 동안 또는 새 메시지에 지정된 시간 동안 대기합니다.

이전에 새 메시지가있는 경우 해당 시점에 반환됩니다.

기본적으로 긴 폴링이라고합니다.

클라이언트가 큐를 계속 폴링하지 않도록 저장합니다.