查看Azure Service Bus以替换一些不可靠的RabbitMQ服务器,而且不清楚定价的一点是完全它们被视为" Brokered连接&# 34;出于计费目的?
我们有大约十几台机器正在处理超过1,000个队列的消息(以及一台机器填充队列),因此1台机器上运行的1个应用程序计为一个代理连接(无论它有多少队列)听)?或者每台机器都会计入1,000多个代理连接(可以快速添加非常)?
所以,让我说我做了这样的事情:
var queues = queueNames.Select(q =>
{
if (!manager.QueueExists(q))
{
manager.CreateQueue(q);
}
return new QueueClient(ServiceBusConnectionString, q);
}).ToArray();
添加queueNames
是一个数组,比方说,10个字符串。那是10个经纪人联系吗? 1?或其他什么?
答案 0 :(得分:5)
当您保持队列连接打开并等待消息时,队列轮询会遇到代理连接的成本(例如,如果您保持队列打开30秒等待消息)。如果您使用默认的零超时(当没有要接收的消息时它将返回null),它不会被视为代理连接。非零超时的一个示例是使用Receive(TimeSpan)
之类的东西,等待指定的超时。
您可以使用OnMessageAsync
来监听邮件而不是轮询,这看起来不像是一个代理连接。
至于它的计算方式,看起来像这是每月平均每小时的并发连接数。定价指南中有一些很好的示例计算。
代理连接定义为以下之一:
从客户端到服务总线队列或主题/订阅的AMQP连接。
用于从具有服务总线主题或队列的服务接收消息的HTTP调用 接收超时值大于零。
服务总线收费超过所包含数量的并发代理连接峰值数量(标准层中为1,000)。峰值按小时计算,按一个月除以744小时按比例计算,并在每月结算期间累加。包含的数量(每月1,000个代理连接数)在结算周期结束时应用于按比例分配的每小时峰值的总和。
您可能应该通过结算门户网站中的支持与Azure团队确认这一点,它们通常非常适合这类请求。