场景是 - 我正在使用RabbitMQ和phpamqplib构建消息队列模型。该模型将具有15个程序,每个程序将使用来自队列的消息并将消息发布到另一个队列。所有这些队列都不同(即大约30个队列)。但我想在所有这些程序中只使用2个连接,一个用于发布,另一个用于消费。我不想在每个程序中创建代理连接。我无法理解怎么做?有帮助吗?提前谢谢。
答案 0 :(得分:0)
如果你想使用2个连接,那么15个生产者和消费者应该是单个进程的一部分并作为线程运行。另外两个线程用于消费,另一个用于发布。
使用者线程使用消息并将它们推送到剩余的工作线程池。
一旦工作线程完成了他们的工作,响应将被推送到发布者内部的内部存储,然后将响应弹出到兔子队列。
。要记住的几点是:
还要探索您希望使用的amqp库是否支持多线程。如果是,则可以跨线程共享连接。