代理连接如何计算?

Mat*_*and 5 azure azureservicebus

正在查看Azure Service Bus来替换一些不可靠的RabbitMQ服务器,而价格方面尚不清楚的一件事是,出于计费目的,它们究竟算作“代理连接”是什么?

我们有大约12台计算机正在处理超过1000个队列中的消息(其中一台计算机正在填充队列),那么在1台计算机上运行的1个应用程序是否被视为一个代理连接(无论它正在侦听多少个队列)?或将每台机器算作1,000+撮合连接(这可能加起来非常快)?

假设我做了这样的事情:

var queues = queueNames.Select(q =>
{
    if (!manager.QueueExists(q))
    {
        manager.CreateQueue(q);
    }
    return new QueueClient(ServiceBusConnectionString, q);
}).ToArray();
Run Code Online (Sandbox Code Playgroud)

Add queueNames是一个由10个字符串组成的数组。那是10个代理连接吗?1个 或者是其他东西?

Jam*_*ard 6

当您保持队列连接打开并坐下来等待消息时,队列轮询会遇到代理连接的开销(例如,如果队列保持30秒等待消息)。如果您使用默认的零超时(当没有消息要接收时,它将仅返回null),则不算作代理连接。非零超时的示例将使用类似Receive(TimeSpan)您在等待指定超时的地方的示例。

您可以OnMessageAsync用来侦听消息,而不是轮询,这看起来不像是代理连接。

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

从此定价指南

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

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

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

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

您可能应该通过计费门户网站的支持与Azure团队确认这一点,他们通常对此类请求非常满意。