消息队列信道
Channel 是什么?
一条 TCP 连接里复用的轻量会话,操作都在它上面做
类比:一根网线里开的多条车道,互不抢道
为什么要它
建立 TCP 连接要三次握手 + AMQP 握手,开销大。Channel 让多条逻辑会话共享一条连接,既省资源又能并发。
使用规则
Channel 不是线程安全的,这是新手最常踩的坑。
- 每个线程用自己的 Channel,不要跨线程共享
- 一个 Channel 上不要并发发布消息
- Channel 数量也有开销,不要每次操作都新建
- Channel 异常关闭会连带影响该连接上的其他 Channel 吗?不会,但连接断了全都失效