gpt4 book ai didi

Azure 服务总线消息泵

转载 作者:行者123 更新时间:2023-12-05 04:17:41 26 4
gpt4 key购买 nike

我想知道服务总线消息泵在底层是如何工作的。有人可以指出我有什么好的文档吗?

当我将消息发送到队列并等待回调调用时,我没有看到幕后发生任何 Http 调用。回调是如何进行的,是否有打开的 tcp session ?此通信使用什么协议(protocol)。

任何帮助都是有帮助的。

最佳答案

服务总线消息泵只是现有接收操作的一个很好的包装器。我的理解是,在底层,一个线程被旋转起来,使用标准的 Receive 方法从队列中请求消息。当消息泵收到消息时,它将启动一个线程并调用 OnMessage 委托(delegate)(最多为 OnMessageOptions 类上的并发调用属性数)。

关于消息泵与服务总线的实际通信,这取决于 connectivity mode 。默认情况下,代理消息传递的连接模式是 AutoDetect,但正如您在上面的链接末尾处看到的注释,代理消息传递不支持从 TCP 回退到 HTTP,因此对于代理消息传递,它从 TCP 开始并保持不变,除非您显式地将其设置为 HTTP。

在 HTTP 连接模式下,如果您有 correct ports open ,您可以看到来自 Receive 调用的请求发出,并且只要发生长轮询,您就可以看到它更新请求。在 TCP 模式下(或者默认情况下,因为 AutoDetect 不会回退到 HTTP),它会打开 TCP 连接(在端口 9354 上)并将其用于双向通信。如果使用 Process Explorer 或 NetStat 等工具,您可以看到这一点。

实际上,关于服务总线使用的专有协议(protocol)并没有太多好的文档。它们确实直接支持 AMQP,这是一种开放的消息传递协议(protocol),通过不同的端口进行传输。 .NET library handles this但您可以通过连接字符串确定传输方式,或者在创建 MessagingFactory 时通过在 MessagingFactoryOptions 对象上设置 TransportType 来确定传输方式。

关于Azure 服务总线消息泵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21152188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com