如何计算经纪联系?

时间:2018-04-23 13:50:49

标签: azure azureservicebus

查看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?或其他什么?

1 个答案:

答案 0 :(得分:5)

当您保持队列连接打开并等待消息时,队列轮询会遇到代理连接的成本(例如,如果您保持队列打开30秒等待消息)。如果您使用默认的零超时(当没有要接收的消息时它将返回null),它不会被视为代理连接。非零超时的一个示例是使用Receive(TimeSpan)之类的东西,等待指定的超时。

您可以使用OnMessageAsync来监听邮件而不是轮询,这看起来不像是一个代理连接。

至于它的计算方式,看起来像这是每月平均每小时的并发连接数。定价指南中有一些很好的示例计算。

从此pricing guide

  

代理连接定义为以下之一:

     
      
  • 从客户端到服务总线队列或主题/订阅的AMQP连接。

  •   
  • 用于从具有服务总线主题或队列的服务接收消息的HTTP调用   接收超时值大于零。

  •   
     

服务总线收费超过所包含数量的并发代理连接峰值数量(标准层中为1,000)。峰值按小时计算,按一个月除以744小时按比例计算,并在每月结算期间累加。包含的数量(每月1,000个代理连接数)在结算周期结束时应用于按比例分配的每小时峰值的总和。

您可能应该通过结算门户网站中的支持与Azure团队确认这一点,它们通常非常适合这类请求。