首页 > 解决方案 > 如何连接远程 RabbitMQ 服务器

问题描述

我将构建应用程序(Asp.net C#)来连接另一个国家的 RabbitMQ 服务器。

所以我的问题是如何连接该服务器。我已经从 NuGet 包安装了 RabbitMQ 客户端。

是否需要在我的本地机器上运行 RabbitMQ 服务?

需要在我的本地机器上安装 RabbitMQ 服务器吗?

从客户端我得到了一些参数,比如用户名、密码、主机名、带私钥的证书。

我很想知道从我的 localhost 应用程序连接该服务器的基本步骤是什么。

有人可以提供博客参考吗?我已经尝试了不同的步骤,但无法连接。

            string vCertSubjectName = "CN=DevRepo, OU=IT, O=OLX, L=KTM, S=Surrey, C=UK";
            ConnectionFactory factory = new ConnectionFactory();
            factory.AuthMechanisms = new AuthMechanismFactory[] { new ExternalMechanismFactory() };
            factory.HostName = "195.168.0.15";
            factory.Port = 5673;
            factory.Ssl.Certs = getCertificate(vCertSubjectName);
            factory.Ssl.ServerName = System.Net.Dns.GetHostName();
            factory.Ssl.Enabled = true;
            factory.Ssl.Version = SslProtocols.Tls12;
            IConnection connection = factory.CreateConnection();

从未收到过类似 connection.start 的错误,可能是由于网络超时。”

标签: c#rabbitmq

解决方案


有很好的简单示例说明如何编写代码以在其站点上向/从 RabbitMQ 发送和接收消息。

获取这些示例;在本地网络上设置 RabbitMQ 服务器;构建示例并验证它们是否有效。一旦您知道如何向/从已知实例发送/接收,您可以更改发送程序中的连接属性,以将其指向其他地方的 RabbitMQ 实例。

我还建议您对外部 RabbitMQ 服务器的 IP 地址进行 ping 操作,以了解实际的传输时间。这应该让您了解网络超时是否是一个有效问题。

PS。在 RabbitMQ 服务器接受来自您的任何消息之前,您需要一个有效的登录名和密码。当你构建上面的示例程序时,只要你在运行 RabbitMQ 的同一台物理机器上,你就可以使用默认的登录名和密码 guest/guest。默认情况下,由于 RabbitMQ 的默认安全配置,这不会在另一台机器上工作。


推荐阅读