知识卡片
为什么要在连接上复用信道
内容
TCP连接的建立和销毁对操作系统而言开销高昂,如果应用的每个线程都独占一条TCP连接,高并发场景下会迅速触及性能瓶颈。RabbitMQ借鉴类似NIO的思路,让多个信道(Channel)复用同一条TCP连接(Connection),每个信道拥有独立编号,仿佛拥有专属连接一样,AMQP协议里几乎所有操作都发生在信道层面。发散:这是”连接池”思想在协议层的体现——把昂贵的物理资源和廉价的逻辑标识分离,用后者的复用换前者的节省;但信道流量过大时复用收益会反转为瓶颈,说明多路复用不是免费的,存在临界点。
参考来源
《RabbitMQ实战指南》第2章《RabbitMQ入门》