当前位置: 首页 > 知识库问答 >
问题:

Azure服务总线请求-应答模式

朱经武
2023-03-14

我试图使用请求回复模式,如微软文档(https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-sessions#request-response-pattern)中所述

“多个应用程序可以将其请求发送到单个请求队列,并将特定的头参数设置为唯一标识发送方应用程序。接收方应用程序可以处理队列中的请求,并在启用会话的队列上发送答复,将会话ID设置为发送方在r上发送的唯一标识符。”请求消息。然后,发送请求的应用程序可以接收特定会话ID上的消息,并正确处理回复。"

据我所知,应该可以从多个应用程序发送消息,让接收者处理消息并发送仅由初始发送者接收的响应。

也许我错了,但有点像这样。

这似乎没有被记录下来(只使用会话进行有序的消息处理),我没有运气找到如何实现这一点。

有人对此有想法/经验吗?

我使用. net核心3.1与微软Azure服务总线包(4.1.2)

共有1个答案

燕经国
2023-03-14

好的,花了一些时间弄清楚,但我想我能够从图表中实现设置。

以下是这个过程,因为它可能会帮助其他人:

我有一个正常队列(PostNL队列)和一个启用会话的共享“应用程序”队列

  • 应用程序(如App1)使用QueueClient并设置唯一的SessionId向PostNL队列发送消息
  • 接收方通过QueueClient处理传入消息。RegisterMessageHandler
  • 接收方处理消息并使用QueueClient向应用程序队列发送回复。SendAsync(replymessage将SessionId设置为UniqueSessionId)
  • 发送方使用session=SessionClient。AcceptMessageSessionAsync(“UniqueSessionId”)
  • 发件人可以使用会话在此会话中开始接收邮件。ReceiveAsync(在应用程序队列上侦听的所有其他应用程序不会竞争这些回复消息,只要它们使用其他会话ID)
 类似资料:
  • 我一直在尝试创建一个客户端来连接我的Azure服务总线队列。我一直在参考此文档: https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-java-how-to-use-queues#send-消息到队列。 我的代码: 在创建客户端时,我遇到以下错误: 通用域名格式。微软蔚蓝色的服务总线。原语。Service

  • 我正在寻找一种解决方案,用于在几个本地数据库之间进行实时数据集成。没有太多的数据转换。我正在评估各种可用的ESB。我认为使用Azure服务总线进行数据集成可以快速开发解决方案。建议使用Azure service bus集成所有内部数据库吗?

  • 我试图使用服务总线队列作为IoT中心终结点将消息从IoT中心路由到函数应用。发送到IoT中心的消息在IoT中心中注册,但不会路由到服务总线队列。当我监视服务总线队列时,我只看到成功的请求。 我使用以下标准实现了两个路由规则: 和 我用Azure提供的示例测试了第二个,结果与之匹配。它们似乎都没有将消息转发到服务总线。 在下面找到一条示例消息,我正在尝试发送该消息。

  • 我使用此url中的示例http://azure.microsoft.com/en-us/documentation/articles/service-bus-java-how-to-use-jms-api-amqp/.我有两个问题: 1、ACS或SAS 连接URL, 用户名和密码来自ACS身份验证,但Azure服务总线已将其身份验证从ACS更改为SAS。它是否也支持SAS身份验证?就像用户名是SA

  • 我已经创建了一个Azure webwork,它将向服务总线队列发送强类型消息,并成功发送。 我想创建另一个webjob,只要servicebus队列中有消息,就会触发该webjob。请在下面找到我正在尝试的代码。出于某种原因,尽管servicebus队列中有消息,但当我在本地运行webjob时,webjob未被触发并出现错误。 错误: 代码: 有谁能帮我解决这个问题吗? 谢谢

  • 我正在尝试使用Xamarin表单订阅Azure服务总线队列。(说实话,我根本不确定是否有可能做到。) 我可以使用一个简单的控制台应用程序接收来自队列的消息,没有任何问题。但是,当我将相同的代码移动到Xamarin时,它在两种不同的场景中失败。 使用Xamarin是否可以正确订阅Azure服务总线队列? 我是不是漏了什么? 我是否有任何其他选择可以将JSON对象从服务总线发送到电话?