如何连接安装在Linux上的RabbitMQ



当尝试连接到安装在Linux中的rabbitmq并且我的应用程序支持docker时,我得到一个错误'没有指定的端点可达'。有人知道如何连接到rabbitmq或如何解决上述错误吗??

这意味着客户端无法到达服务器。试着找出RabbitMQ端口是否暴露给主机(使用netstat检查打开的端口)。

netstat -an

如果端口没有通过Docker暴露,你可以这样做:

ports:
- 5672:5672
- 15672:15672

如果它是暴露的,我会检查你是否可以用netcat或telnet连接到端口。如果这不起作用,很可能是Linux中的防火墙。

如果所有端口都可访问,请确保您有正确的连接。您应该使用端口5672,或者至少是运行Rabbit MQ服务器的端口。15672为HTTP API端口和管理界面。

请注意UI和HTTP API端口(通常为15672)不支持AMQP 0-9-1、AMQP 1.0、STOMP或MQTT连接。这些客户端应该使用单独的端口。

连接字符串:

{  
….  
"Rabbit-MQ-AMPQ": "amqp://[username]:[password]@21.72.175.25"  
….  
} 

你可以尝试不指定端口,看看会发生什么。

示例:

/* 
using RabbitMQ.Models; 
using RabbitMQ.Client; 
using Microsoft.Extensions.Configuration; 
using System.Text; 
*/  
public void Produce(string message)  
{  
var factory = new ConnectionFactory()  
{  
Uri = new Uri(configuration["Rabbit-MQ-AMPQ"])  //Through DI
};  

using (var conn = factory.CreateConnection())  
{  
using (var channel = conn.CreateModel())  
{  

channel.QueueDeclare(queue: "messages_share",  
durable: false,  
exclusive: false,  
autoDelete: false,  
arguments: null);  

var body = Encoding.UTF8.GetBytes(message);  
channel.BasicPublish(exchange: "",  
routingKey: "messages_share",  
basicProperties: null,  
body: body);  

Console.WriteLine(" [x] Sent {0}", message);  
}  
}  

}  

免责声明:检查你的RabbitMQ服务器配置,并了解正在做的事情的性质,以确认端口。

最新更新