Azure 服务总线主题接收消息
Azure Service Bus Topic Receiving messages
关于 https://github.com/Azure/azure-service-bus/tree/master/samples/DotNet/GettingStarted/Microsoft.Azure.ServiceBus/BasicSendReceiveUsingTopicSubscriptionClient,我了解 Azure 服务总线主题的一般工作原理,我的问题更多是关于它的实际工作原理。
MesageHandler 注册后 (subscriptionClient.RegisterMessageHandler),它开始接收消息,正如我在
中看到的那样
Console.WriteLine($"Received message: SequenceNumber:{message.SystemProperties.SequenceNumber} Body:{Encoding.UTF8.GetString(message.Body)}");
但是,我的问题是客户端实际上是使用拉模式接收消息还是从服务总线推送?客户端是否进行连续轮询以接收消息 - 这在内部是如何工作的?
客户端正在执行 long-poll。 IE。它会要求一条消息并等待它。如果在一分钟的超时时间后没有返回任何内容,它将再次轮询。如果在超时到期之前有消息可用,消息将被提供给消息处理程序,轮询将再次开始。 Azure 服务总线不向客户端推送消息。
关于 https://github.com/Azure/azure-service-bus/tree/master/samples/DotNet/GettingStarted/Microsoft.Azure.ServiceBus/BasicSendReceiveUsingTopicSubscriptionClient,我了解 Azure 服务总线主题的一般工作原理,我的问题更多是关于它的实际工作原理。
MesageHandler 注册后 (subscriptionClient.RegisterMessageHandler),它开始接收消息,正如我在
中看到的那样Console.WriteLine($"Received message: SequenceNumber:{message.SystemProperties.SequenceNumber} Body:{Encoding.UTF8.GetString(message.Body)}");
但是,我的问题是客户端实际上是使用拉模式接收消息还是从服务总线推送?客户端是否进行连续轮询以接收消息 - 这在内部是如何工作的?
客户端正在执行 long-poll。 IE。它会要求一条消息并等待它。如果在一分钟的超时时间后没有返回任何内容,它将再次轮询。如果在超时到期之前有消息可用,消息将被提供给消息处理程序,轮询将再次开始。 Azure 服务总线不向客户端推送消息。