在C#中连接到多个RabbitMQ主机

eulz3vhy  于 2023-02-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(242)

我有一个.NET核心应用程序,并试图连接到多个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地址

yhqotfr8

yhqotfr81#

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

# List of hosts
var hosts = 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. www.example.com https://www.rabbitmq.com/dotnet-api-guide.html#connecting
  2. How to use RabbitMQ list of hosts connection parameter

相关问题