连接到C#

时间:2019-06-26 21:56:56

标签: c# .net rabbitmq

我有一个.NET Core应用程序,正在尝试连接到多个RabbitMQ主机。下面是我的示例代码,但是当我运行时,我得到了BrokerUnreachableException

var hosts = rabbitConnectionString.Split(',').Select(p => p.Trim()).ToList();

var connection = new ConnectionFactory().CreateConnection(hosts);

我的rabbitConnectionString看起来像 amqp://user:password@server:5672/FileHandler,amqp://user:password@server:5662/FileHandler

是否可以连接到多个主机?

更新:以下是我的更新代码。我仍然收到主机无法访问的错误

var hosts = "dev.mydomain.com" //I have also tried "ampq://dev.mydomain.com

var connection = new ConnectionFactory()
{
  Port = 5662,
  UserName = "FileHandler",
  Password = "FileHandler",
  AutomaticRecoveryEnabled = true,
  NetworkRecoveryInterval = new TimeSpan(2000),
  VirtualHost = "FileHandler"
}
.CreateConnection(hosts);

主机列表是否需要IP地址

1 个答案:

答案 0 :(得分:0)

您可以将多个主机作为连接工厂的输入。 RabbitMQ客户端将使用给定的主机重试,直到建立连接为止。

# List of hosts
var addresses = Array(new Address("IP address 1"), new Address("IP address 2"))

# Connection factort object.
var factory = new ConnectionFactory()

# Setting connection factory arguments.
factory.setPort(5672)
factory.setUsername("")
factory.setPassword("")
factory.setAutomaticRecoveryEnabled(true)
factory.setNetworkRecoveryInterval(2000)

# Passing the list of hosts to get the connection.
var connection = factory.CreateConnection(hosts)

参考:

  1. https://www.rabbitmq.com/dotnet-api-guide.html#connecting
  2. How to use RabbitMQ list of hosts connection parameter