同步/异步的方式
异步的方式,采用callback的方式,实现onCompleted的方法
callback/future之间的区别?
1 | Future<RecordMetadata> send(ProducerRecord<K, V> producer, Callback callback); |
- 初始化以及真正发送消息的
kafka-producer-network-thread
IO 线程。 - 将消息序列化。
- 得到需要发送的分区。
- 写入内部的一个缓存区中。
- 初始化的 IO 线程不断的消费这个缓存来发送消息。
Producer
的关闭,Producer 在使用过程中消耗了不少资源(线程、内存、网络等)因此需要显式的关闭从而回收这些资源。