Azure服务总线:什么是请求和消息?

13
我们的应用程序使用Azure服务总线进行消息传递。我们创建了几个主题和订阅者。我们每天会发送大约500条消息,但是在图表中显示有数十万次请求来处理这500条消息。我们的计费价格也约为每月800美元。对于每月500 * 30条消息来说,这太贵了。我不明白为什么价格这么高,也想知道图表中的请求是什么意思。
如果价格高是因为请求数量多,那么我该如何减少请求?我的消息是正确的。问题只出在请求上。
以下是一个样例图表供您参考(非原始图表)。在原始图表中,我看到500条消息需要处理大约100,000次请求。 enter image description here
2个回答

5

在FAQ下面:

https://azure.microsoft.com/en-us/pricing/details/service-bus/

队列和主题的操作计量是如何计算的?

对于经纪实体(队列和主题/订阅),任何协议上与Service Bus服务的API交互都被视为一个操作。

发送、接收、删除小于等于64KB大小的消息被视为一个计费操作。如果消息大于64KB,计费操作数将根据消息大小以64KB的倍数计算。例如,发送到Service Bus的8KB消息将计费为一个操作,但发送到Service Bus的96KB消息将计费为两个操作。读取带锁定的8KB消息,然后完成或显式放弃该消息将计费为两个操作。续订消息的锁定也会产生一次操作。

同一条消息的多次传递(例如,消息传递到多个订阅者或在放弃、延迟或死信处理后检索消息)将被视为独立操作。例如,在具有三个订阅的主题的情况下,发送并随后接收的单个64KB消息将生成四个计费操作,一个“in”加上三个“out”,假设所有消息都传递到所有订阅并在读取期间被删除。
此外,创建、读取(列出)、更新和删除队列、主题或订阅将分别产生操作费用。
操作是针对队列或主题/订阅服务端点进行的API调用。这包括管理、发送/接收和会话状态操作。

谢谢您的回复。它让我对这个问题有了更清晰的认识。 - chindirala sampath kumar
16
我不明白请求和消息之间的区别。 - naman1994
你能帮忙回答这个问题吗?https://dev59.com/isDqa4cB1Zd3GeqPak4d - David Klempfner
3
请求和消息有什么区别?其他人也问过!它们与“操作”有关系吗? - iBobb
3
上面的图表显示“请求”和“消息”,但Azure计费信息却谈论“操作”,这很奇怪。对我来说,请求应该是一个操作 - 因此是对服务的任何API调用。任何给定的消息(您的实际有效负载)可能涉及多个操作,如上所述。当然,这只是我的解释(我不在微软工作)。 - snow_FFFFFF

2

我在文档中找到了以下内容,但不确定这是否符合您的需求:

创建队列或订阅客户端时,可以指定接收模式:Peek-lock 或 Receive and Delete。默认接收模式为 PeekLock。在默认模式下操作时,客户端发送请求以从 Service Bus 接收消息。客户端接收消息后,发送请求以完成该消息。

将接收模式设置为 ReceiveAndDelete 时,两个步骤将合并成一个请求。这些步骤减少了总操作数,并且可以提高整体消息吞吐量。这种性能增益带来了丢失消息的风险。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接