c# - 如何连接远程 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 的错误,可能是由于网络超时。”
解决方案
有很好的简单示例说明如何编写代码以在其站点上向/从 RabbitMQ 发送和接收消息。
获取这些示例;在本地网络上设置 RabbitMQ 服务器;构建示例并验证它们是否有效。一旦您知道如何向/从已知实例发送/接收,您可以更改发送程序中的连接属性,以将其指向其他地方的 RabbitMQ 实例。
我还建议您对外部 RabbitMQ 服务器的 IP 地址进行 ping 操作,以了解实际的传输时间。这应该让您了解网络超时是否是一个有效问题。
PS。在 RabbitMQ 服务器接受来自您的任何消息之前,您需要一个有效的登录名和密码。当你构建上面的示例程序时,只要你在运行 RabbitMQ 的同一台物理机器上,你就可以使用默认的登录名和密码 guest/guest。默认情况下,由于 RabbitMQ 的默认安全配置,这不会在另一台机器上工作。
推荐阅读
- json - 使用来自 GPS 设备的数据加载 IP 地址
- mysql - 当shell变量包含&符号时,MySql查询失败
- spring-batch - Spring Batch 提交间隔动态值
- pytest - PyTest 中有一种方法可以使用 pytest_collect_file 钩子来订购收集测试吗?
- python - 如何转换用 ImageIO 加载的 Numpy 数组的第三维
- python - 如何输入用户定义的值,如 IP 地址或计数以使用 python 捕获数据包
- html - 控制笔画的类型 (-webkit-text-stroke)
- imagemagick - 将精灵表转换为 gif 动画
- javascript - 无法在输入框中输入密码
- javascript - fs.createWriteStream 在将数据写入文件时不使用背压,导致内存使用率高