我正在构建多个平台之间的集成模块,每个平台都需要发送和接收集成消息。我希望有一个简单的服务总线体系结构,所以不要有6个队列(3个系统,每个系统出入)。我想有一个“输出”队列和一个“输入”队列。
然后,我将在每个队列中放入具有特定数据类型的消息(例如,内容可能是:“ output.crm”,这意味着这是crm系统的输出。)。我有几个Azure函数正在侦听此队列,但是我只希望某些特定的函数实际处理该消息-知道如何处理“ output.crm”消息的函数。
那是-我正在尝试在其上实现“选择性消费者”类型的模式。使用Azure函数甚至可以做到这一点吗?
答案 0 :(得分:1)
服务总线主题和订阅似乎可以帮助您:
答案 1 :(得分:0)
使单独的函数侦听相同的队列有什么用? 据我所知,通过多个侦听器侦听同一队列并不是一个好主意。(有一个队列分区的概念,但我对此并不十分熟悉。)
如果您想通过多个Servicebus侦听器侦听同一队列,则可以使用条件,如果条件不匹配,则放弃消息。 如果您希望以这种方式放弃邮件,那么我可能会帮助您。
注意,最好通过将单个Azure函数(Servicebus侦听器)设置为单个队列来区分职责,否则您可以选择使用主题。
答案 2 :(得分:0)
Mikhail回答的服务总线主题的另一种选择是使用Azure事件网格发布/订阅模型。
AEG是事件模型,其中自定义发布者(http客户端)将事件消息发送到自定义主题端点,并且AEG通知管理器将根据其订阅将其分发给所有订阅者。作为AEG订阅者,有一个EventGridTrigger函数。
请注意,此模型是推送模型,因此不需要任何侦听器来提取消息。
AEG限制为: