一、涉及到的组件概念
1.1、缓冲区
1.2、本地线程
1.3.本地线程消息推送策略
二、各组件的解释参见代码注释
// 配置消息的缓冲区/** 设置消息发送者端的缓冲区大小,如果设置了缓冲区,消息会先发送到缓冲区,可以提供发送性能* 默认大小是32M*/props.put(ProducerConfig.BUFFER_MEMORY_CONFIG,33554432);// 配置消息的本地线程/** 设置消息发送者端的本地线程拉取策略* 本地线程会从缓冲区中拉取消息* 设置批量拉取消息的大小,默认是16kb,即本地线程从缓冲区中batch满了16kb的消息后就会发送出去**/props.put(ProducerConfig.BATCH_SIZE_CONFIG,16384);// 设置本地线程中消息发送出去的时间/*** 默认值是0,意思是在拉取到消息以后就立马发送出去* 一般设置为10,表示不管本地线程有没有从缓冲区拉取够16kb的消息,在10ms后,都必须要拉取到的消息发送出去*/props.put(ProducerConfig.LINGER_MS_CONFIG,10);