如何解决RabbitMQ.Client.Exceptions.BrokerUnreachableException: '没有一个指定的端点是可达的'
我无法让 RabitMq 工作并出现此错误。我发布这个是为了让其他有同样问题的人最终能比我更快地找到解决方案 - 我用了几个小时来找到问题的解决方案。
解决方法
感谢@evgenirusev - https://github.com/devmentors/DNC-DShop/issues/8
RabitMQ - Docker - https://hub.docker.com/_/rabbitmq
我试图让 RabitMq“Hello World”教程起作用,但不知道为什么它不起作用。
这对我有用: - 希望对某人有帮助
1.在 Docker 终端“Client”中制作 RabitMq Image - new Image - docker run -d --hostname my-rabit --name ecomm-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management
2.然后我用端口 192.168.99.100:15672
复制了“:15672
”的 IP,并在 RabitMq 中将其用作 hostname
-“从 docker 复制 kitematic
{ {1}}”
3.在 RabitMQ 控制台应用程序中发送和接收 - app
4.在 RabitMQ 控制台应用程序中发送和接收 - factory.HostName = "192.168.99.100";
5.不要忘记 - Nuget-“RabbitMQ.Client” factory.Port = AmqpTcpEndpoint.UseDefaultPort;
接收:
<PackageReference Include="RabbitMQ.Client" Version="6.2.1" />
发送:
ConnectionFactory factory = new ConnectionFactory();
//factory.UserName = "user";
//factory.Password = "password";
//factory.VirtualHost = "/";
factory.HostName = "192.168.99.100";
factory.Port = AmqpTcpEndpoint.UseDefaultPort;
IConnection connection = factory.CreateConnection();
//using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare(queue: "hello",durable: false,exclusive: false,autoDelete: false,arguments: null);
Console.WriteLine(" [*] Waiting for messages.");
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model,ea) =>
{
var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}",message);
};
channel.BasicConsume(queue: "hello",autoAck: true,consumer: consumer);
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。