|
@@ -1,5 +1,7 @@
|
|
|
package com.cxzx;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollStreamUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import com.cxzx.config.KafkaConfig;
|
|
|
import com.cxzx.db.KafkaData;
|
|
|
import com.cxzx.db.Tidb;
|
|
@@ -22,13 +24,16 @@ public class Main {
|
|
|
var consumer = new KafkaConsumer<String, String>(KafkaConfig.getKafkaProperties());
|
|
|
|
|
|
try (consumer) {
|
|
|
- consumer.subscribe(List.of("article"));
|
|
|
+ consumer.subscribe(List.of("article","media_center_test"));
|
|
|
while (true) {
|
|
|
var kafkaDataList = new ArrayList<KafkaData>();
|
|
|
for (ConsumerRecord<String, String> record : consumer.poll(Duration.ofMillis(2000))) {
|
|
|
- kafkaDataList.add(new KafkaData(record.offset(), record.value(), new Timestamp(record.timestamp())));
|
|
|
+ kafkaDataList.add(new KafkaData(record.topic(),record.offset(), record.value(), new Timestamp(record.timestamp())));
|
|
|
}
|
|
|
- Tidb.insert(kafkaDataList);
|
|
|
+ for (Map.Entry<String, List<KafkaData>> entry : CollStreamUtil.groupByKey(kafkaDataList, KafkaData::getTopic).entrySet()) {
|
|
|
+ Tidb.insert(entry.getValue(),entry.getKey());
|
|
|
+ }
|
|
|
+
|
|
|
consumer.commitSync();
|
|
|
}
|
|
|
} catch (Exception e) {
|