我有一个.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地址
答案 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)
参考: