RabbitMQ on Azure Connection Timeout

We have some problems migrating our software to Azure. Our solution consists of 2 websites (frontend, backend) and webjob (a winning service when installing on our equipment). These nodes communicate using the RabbitMQ cluster (2 Ubuntu VM). We don’t have any problems on the premises, but when installing on Azure, we see many errors, such as:

Publisher did not confirm message

or

Publish not confirmed before channel closed

or

SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 104.40.186.27:5672

In RabbitMQ we see errors like this:

closing AMQP connection <0.390.0> (100.73.204.90:61152 -> 100.73.205.2:5672):
   {handshake_timeout,handshake}

As a result, messages are often not received correctly.

We use MassTransit on top of RabbitMQ to exchange actual messages. Here is our environment setup procedure:

Ubuntu 14.04 (A3: 4 , 7 ) . 2 5672 15672. - Azure .

powershel script 2 VM:

$imageName = "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_1-LTS-amd64-server-20140927-en-us-30GB"

$vmc = New-AzureVMConfig -Name $machineName -InstanceSize "Small" -Image $imageName -AvailabilitySetName $serviceName

$null = $vmc | Add-AzureProvisioningConfig -Linux -LinuxUser $user -Password $password
$null = $vmc | New-AzureVM -ServiceName $serviceName -WaitForBoot

$vm = Get-AzureVM -Name $machineName -ServiceName $serviceName

$null = Add-RabbitMQEndpoint -vm $vm -port 5672 -name "RabbitMQ-Main"
$null = Add-RabbitMQEndpoint -vm $vm -port 15672 -name "RabbitMQ-Mgmt"

$null = $vm | Update-AzureVM

Function Add-RabbitMQEndpoint($vm,$port,$name)
{
        $lbName = $name + "_LB"
        $null = Add-AzureEndpoint -VM $vm -LocalPort $port -PublicPort $port -Name $name -Protocol tcp -LBSetName $lbName -ProbePort $port -ProbeProtocol tcp -ProbeIntervalInSeconds 15
}

script RabbitMQ :

  sudo add-apt-repository 'deb http://www.rabbitmq.com/debian/ testing main'"
  sudo apt-get update
  sudo apt-get -q -y --force-yes install rabbitmq-server=3.4.1-1

  sudo invoke-rc.d rabbitmq-server stop
  echo 'MYCOOKIEVALUE' | sudo tee /var/lib/rabbitmq/.erlang.cookie
  sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
  sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie
  sudo invoke-rc.d rabbitmq-server start

  sudo rabbitmq-plugins enable rabbitmq_management
  sudo invoke-rc.d rabbitmq-server stop
  sudo invoke-rc.d rabbitmq-server start

  sudo rabbitmqctl add_user user1 pwd1
  sudo rabbitmqctl set_user_tags user1 administrator
  sudo rabbitmqctl set_permissions -p / user1 '.*' '.*' '.*'

, :

  sudo rabbitmqctl stop_app
  sudo rabbitmqctl join_cluster rabbit@$mymachinename
  sudo rabbitmqctl start_app
  sudo rabbitmqctl set_cluster_name my_cluster_name

(, 4369 25672), , . ? rabbitmq , . RabbitMQ.

? , - -? ?

+4
1

VPS, RabbitMQ Windows Server. .Net, RabbitMQ/Masstransit -, / RabbitMQ/Masstransit.

, RabbitMQ . VPS - (VNET) Azure, , , ( ). , - ip. , VNET, - RabbitMQ. , , , RabbitMQ VNET.

+3

All Articles