1:服务器接受生产者发送的消息时,先判断是否有足够内存,然后判断是否需要持久化,还要判断是否要事物支持。
2:如果内存够,消息最终会放到PendingMessageCursor得发送队列
3:如果开启事物,但消息发送到server先临时存起来,再客户端发送commit到server时,再把消息放入得发送队列
4:如果内存接近饱和,server会发送消息给producer发送消息太快了
5:当服务端的内存不够时会把消息放到messagesWaitingForSpace里面,等到内存空闲就会通过iterate方法发送出去,如果消息再等待过程过期了就会向生产者发送异常消息
6:当有消费者时,消息保存到消费者的待发队列里等待发给消费者