生产者-消费者模式
生产者生产数据,并存放在缓冲区中;消费者从缓冲区中取数据,并进行消费(处理)。
优点
- 解耦,生产者和消费者解耦。
- 可调整并发,给予慢的一方更多并发数。
- 异步。
- 支持分布式,生产者和消费者通过队列进行通讯,不需要运行在同一台机器上。
两个注意点
- 容器一致性,容器对于所有生产者和消费者都是一致的,因此对容器的访问必须是同步的(即获取容器数据之前,须获得容器的锁)。
- 生产者和消费者之间的同步和协作。当容器已满,生产者不生产;当容器已空,消费者不消费;容器从空到有,通知消费者消费;容器从满到不满,通知生产者生产。
消息队列(MQ, Message Queue)
优点
- 解耦
- 异步
- 削峰
参考资料