我正在尝试设置 RabbitMQ 以将 Web 应用程序日志发送到日志服务器。
我的日志服务器将监听一个通道并存储进来的日志。有几个 Web 应用程序需要向日志服务器发送信息。
有许多连接(用户)访问 Web 服务器,在不相互锁定的情况下向 RabbitMQ 发布消息的最佳设计是什么?为每个 Web 请求继续打开到 MQ 的新连接是个好主意吗?是否有某种消息队列池?
我将 IIS 用于 Web 服务器。
我假设您正在利用 .NET 框架来构建您的应用程序,因为它托管在 IIS 中。如果是这样,您还可以利用具有内置功能的Daishi.AMQPQueuePool
。这是一个完整概述机制的教程。
要回答您的问题,您首先应该从您的应用程序服务器建立到 RabbitMQ 的连接。然后,您可以初始化一个 Channel(在底层连接的上下文中执行的进程)来服务每个 HTTP 请求。为每个请求建立新连接并不是一个好主意。
RabbitMQ 具有内置队列功能。它有据可查,请查看官方文档:http ://www.rabbitmq.com/getstarted.html