消息队列:存消息的缓冲区,生产者发消息、消费者取消息,为解耦系统。
核心角色:
- 生产者 Producer:发送消息,不关心谁消费、什么时候消费
- 队列 Queue:消息的存储容器,先进先出(FIFO)
- 消费者 Consumer:从队列拉取 / 接收消息,处理业务

代码实现:
相关函数:
msgget () ------ 创建 / 打开消息队列
msgsnd () ------ 发送消息(入队)
msgrcv () ------ 接收消息(出队)
发送端:a.c

运行结果:在消息队列中插入了一个消息,占32个字节
(可使用命令:ipcs 查看)

取端:b.c

执行结果:消息被取出

消息队列三大核心作用:
- 解耦:系统之间不再直接调用。A 发消息到 MQ,B 自己消费,A 不用依赖 B。
- 削峰填谷:流量突发时,消息存入队列,消费者匀速处理,防止服务被打垮。
- 异步:主流程不用等待下游处理完成,直接返回,提升响应速度。
这就是消息队列的全部内容,感谢您的观看