生产者消费者模型主要运用场景为:消息队列等。
简单概述为:快速的产生data, 及时传送给consumer。 这里面涉及了以下几个问题:
1. 生产者端产生的data的rate影响因素: 存放形式,总体大小限制,IO限制(磁盘读写能力),内存限制,每次W大小限制
2. 从生产者data位置s1 传送到消费者位置s2影响因素:通信限制(MTU,带宽),IO限制
3. data在消费者端落地的rate影响因素:存放形式,存放位置大小限制、IO限制,内存限制,每次R/W大小限制
4. 响应影响因素:生产端数据满了及时通知消费者(尽可能避免该因素,极大影响速度),消费者端写数据速度影响,生产者端产生数据影响,单次传送数据大小影响,存放data结构形式影响(list, queue等),发送接收形式影响(单线程、多线程、多进程等),消息交互模式影响
5. 如何使用更优的锁尽量减少对IO的影响
6. 数学模型的设计,在构造好的几种模型,需要理论分析及测试验证,注意操作系统参数的影响,以及测试机器配置的高低影响
参考: