1414import static cn .leancloud .kafka .consumer .BasicConsumerConfigs .ENABLE_AUTO_COMMIT ;
1515import static java .util .Objects .requireNonNull ;
1616
17+ /**
18+ * A builder used to create a {@link LcKafkaConsumer} which uses a {@link KafkaConsumer} to consume records
19+ * from Kafka broker.
20+ *
21+ * @param <K> the type of key for records consumed from Kafka
22+ * @param <V> the type of value for records consumed from Kafka
23+ */
1724public final class LcKafkaConsumerBuilder <K , V > {
1825 /**
1926 * Create a {@code LcKafkaConsumerBuilder} used to build {@link LcKafkaConsumer}.
2027 *
21- * @param kafkaConfigs the kafka consumer configs. Please refer
28+ * @param kafkaConfigs the kafka configs for {@link KafkaConsumer} . Please refer
2229 * <a href="http://kafka.apache.org/documentation.html#consumerconfigs" >this document</a> for
2330 * valid configurations.
24- * @param messageHandler a {@link MessageHandler } to handle the consumed msg from kafka
31+ * @param consumerRecordHandler a {@link ConsumerRecordHandler } to handle the consumed record from kafka
2532 * @return a new {@code LcKafkaConsumerBuilder}
2633 */
2734 public static <K , V > LcKafkaConsumerBuilder <K , V > newBuilder (Map <String , Object > kafkaConfigs ,
28- MessageHandler <K , V > messageHandler ) {
35+ ConsumerRecordHandler <K , V > consumerRecordHandler ) {
2936 requireNonNull (kafkaConfigs , "kafkaConfigs" );
30- requireNonNull (messageHandler , "messageHandler " );
31- return new LcKafkaConsumerBuilder <>(new HashMap <>(kafkaConfigs ), messageHandler );
37+ requireNonNull (consumerRecordHandler , "consumerRecordHandler " );
38+ return new LcKafkaConsumerBuilder <>(new HashMap <>(kafkaConfigs ), consumerRecordHandler );
3239 }
3340
3441 /**
3542 * Create a {@code LcKafkaConsumerBuilder} used to build {@link LcKafkaConsumer}.
3643 *
37- * @param kafkaConfigs the kafka consumer configs. Please refer
44+ * @param kafkaConfigs the kafka configs for {@link KafkaConsumer} . Please refer
3845 * <a href="http://kafka.apache.org/documentation.html#consumerconfigs" >this document</a> for
3946 * valid configurations.
40- * @param messageHandler a {@link MessageHandler } to handle the consumed msg from kafka
47+ * @param consumerRecordHandler a {@link ConsumerRecordHandler } to handle the consumed record from kafka
4148 * @param keyDeserializer The deserializer for key that implements {@link Deserializer}
4249 * @param valueDeserializer The deserializer for value that implements {@link Deserializer}
4350 * @return a new {@code LcKafkaConsumerBuilder}
4451 */
4552 public static <K , V > LcKafkaConsumerBuilder <K , V > newBuilder (Map <String , Object > kafkaConfigs ,
46- MessageHandler <K , V > messageHandler ,
53+ ConsumerRecordHandler <K , V > consumerRecordHandler ,
4754 Deserializer <K > keyDeserializer ,
4855 Deserializer <V > valueDeserializer ) {
4956 requireNonNull (kafkaConfigs , "kafkaConfigs" );
50- requireNonNull (messageHandler , "messageHandler " );
57+ requireNonNull (consumerRecordHandler , "consumerRecordHandler " );
5158 requireNonNull (keyDeserializer , "keyDeserializer" );
5259 requireNonNull (valueDeserializer , "valueDeserializer" );
53- return new LcKafkaConsumerBuilder <>(new HashMap <>(kafkaConfigs ), messageHandler , keyDeserializer , valueDeserializer );
60+ return new LcKafkaConsumerBuilder <>(new HashMap <>(kafkaConfigs ), consumerRecordHandler , keyDeserializer , valueDeserializer );
5461 }
5562
5663 /**
@@ -68,7 +75,7 @@ private static void requireArgument(boolean expression, String template, Object.
6875 private ExecutorService workerPool = ImmediateExecutorService .INSTANCE ;
6976 private boolean shutdownWorkerPoolOnStop = false ;
7077 private Map <String , Object > configs ;
71- private MessageHandler <K , V > messageHandler ;
78+ private ConsumerRecordHandler <K , V > consumerRecordHandler ;
7279 @ Nullable
7380 private Consumer <K , V > consumer ;
7481 @ Nullable
@@ -79,18 +86,18 @@ private static void requireArgument(boolean expression, String template, Object.
7986 private CommitPolicy <K , V > policy ;
8087
8188 private LcKafkaConsumerBuilder (Map <String , Object > kafkaConsumerConfigs ,
82- MessageHandler <K , V > messageHandler ) {
83- this (kafkaConsumerConfigs , messageHandler , null , null );
89+ ConsumerRecordHandler <K , V > consumerRecordHandler ) {
90+ this (kafkaConsumerConfigs , consumerRecordHandler , null , null );
8491 }
8592
8693 private LcKafkaConsumerBuilder (Map <String , Object > kafkaConsumerConfigs ,
87- MessageHandler <K , V > messageHandler ,
94+ ConsumerRecordHandler <K , V > consumerRecordHandler ,
8895 @ Nullable
89- Deserializer <K > keyDeserializer ,
96+ Deserializer <K > keyDeserializer ,
9097 @ Nullable
91- Deserializer <V > valueDeserializer ) {
98+ Deserializer <V > valueDeserializer ) {
9299 this .configs = kafkaConsumerConfigs ;
93- this .messageHandler = messageHandler ;
100+ this .consumerRecordHandler = consumerRecordHandler ;
94101 this .keyDeserializer = keyDeserializer ;
95102 this .valueDeserializer = valueDeserializer ;
96103 }
@@ -131,13 +138,13 @@ public LcKafkaConsumerBuilder<K, V> pollTimeout(Duration pollTimeout) {
131138 return this ;
132139 }
133140
134- public LcKafkaConsumerBuilder <K ,V > gracefulShutdownTimeoutMillis (long gracefulShutdownMs ) {
141+ public LcKafkaConsumerBuilder <K , V > gracefulShutdownTimeoutMillis (long gracefulShutdownMs ) {
135142 requireArgument (gracefulShutdownMs >= 0 , "gracefulShutdownMillis: %s (expected >= 0)" , gracefulShutdownMs );
136143 this .gracefulShutdownMillis = gracefulShutdownMs ;
137144 return this ;
138145 }
139146
140- public LcKafkaConsumerBuilder <K ,V > gracefulShutdownTimeout (Duration gracefulShutdownTimeout ) {
147+ public LcKafkaConsumerBuilder <K , V > gracefulShutdownTimeout (Duration gracefulShutdownTimeout ) {
141148 requireNonNull (gracefulShutdownTimeout , "gracefulShutdownTimeout" );
142149 this .gracefulShutdownMillis = gracefulShutdownTimeout .toMillis ();
143150 return this ;
@@ -158,14 +165,14 @@ public LcKafkaConsumerBuilder<K, V> maxPendingAsyncCommits(int maxPendingAsyncCo
158165 }
159166
160167 /**
161- * Change the {@link MessageHandler } to handle the consumed msg from kafka.
168+ * Change the {@link ConsumerRecordHandler } to handle the consumed record from kafka.
162169 *
163- * @param messageHandler the handler to handle consumed msg
170+ * @param consumerRecordHandler the handler to handle consumed record
164171 * @return this
165172 */
166- public LcKafkaConsumerBuilder <K , V > messageHandler (MessageHandler <K , V > messageHandler ) {
167- requireNonNull (messageHandler , "messageHandler " );
168- this .messageHandler = messageHandler ;
173+ public LcKafkaConsumerBuilder <K , V > messageHandler (ConsumerRecordHandler <K , V > consumerRecordHandler ) {
174+ requireNonNull (consumerRecordHandler , "consumerRecordHandler " );
175+ this .consumerRecordHandler = consumerRecordHandler ;
169176 return this ;
170177 }
171178
@@ -207,7 +214,7 @@ public LcKafkaConsumerBuilder<K, V> workerPool(ExecutorService workerPool, boole
207214 * while (true) {
208215 * final ConsumerRecords<K, V> records = consumer.poll(pollTimeout);
209216 * for (ConsumerRecord<K, V> record : records) {
210- * handler.handleMessage (record.topic(), record.value());
217+ * handler.handleRecord (record.topic(), record.value());
211218 * }
212219 * }
213220 * </pre>
@@ -216,9 +223,9 @@ public LcKafkaConsumerBuilder<K, V> workerPool(ExecutorService workerPool, boole
216223 * Please note that this consumer requires these kafka configs must be set, otherwise
217224 * {@link IllegalArgumentException} will be thrown:
218225 * <ol>
219- * <li><code>max.poll.interval.ms</code></li>
220- * <li><code>max.poll.records</code></li>
221- * <li><code>auto.commit.interval.ms</code></li>
226+ * <li><code>max.poll.interval.ms</code></li>
227+ * <li><code>max.poll.records</code></li>
228+ * <li><code>auto.commit.interval.ms</code></li>
222229 * </ol>
223230 * <p>
224231 * Though all of these configs have default values in kafka, we still require every user to set them specifically.
@@ -266,8 +273,8 @@ Consumer<K, V> getConsumer() {
266273 return consumer ;
267274 }
268275
269- MessageHandler <K , V > getMessageHandler () {
270- return messageHandler ;
276+ ConsumerRecordHandler <K , V > getConsumerRecordHandler () {
277+ return consumerRecordHandler ;
271278 }
272279
273280 ExecutorService getWorkerPool () {
0 commit comments