ฉันต้องการประมวลผลเป็นชุด ในกรณีการใช้งานของฉัน ข้อความ send kafka Producer จะถูกส่งไปทีละข้อความ ฉันต้องการอ่านเป็นรายการในแอปพลิเคชันสำหรับผู้บริโภค ฉันสามารถทำได้ที่ห้องสมุด Spring Kafka ผู้ฟังแบบแบตช์ Spring Kafka
มีวิธีใดบ้างในการทำเช่นนี้กับไลบรารี quarkus-smallrye-reactive-messaging-kafka
ฉันลองตัวอย่างด้านล่างแล้ว แต่พบข้อผิดพลาด
ERROR [io.sma.rea.mes.provider] (vert.x-eventloop-thread-3) SRMSG00200: The method org.MyConsumer#aggregate has thrown an exception: java.lang.ClassCastException: class org.TestConsumer cannot be cast to class io.smallrye.mutiny.Multi (org.TestConsumer is in unnamed module of loader io.quarkus.bootstrap.classloading.QuarkusClassLoader @6f2c0754; io.smallrye.mutiny.Multi is in unnamed module of loader io.quarkus.bootstrap.classloading.QuarkusClassLoader @4c1638b)
ใบสมัครคุณสมบัติ:
kafka.bootstrap.servers=hosts
mp.messaging.connector.smallrye-kafka.group.id=KafkaQuick
mp.messaging.connector.smallrye-kafka.auto.offset.reset=earliest
mp.messaging.incoming.test-consumer.connector=smallrye-kafka
mp.messaging.incoming.test-consumer.value.deserializer=org.TestConsumerDeserializer
ทดสอบConsumerDeserializer:
public class TestConsumerDeserializer extends JsonbDeserializer<TestConsumer>{
public TestConsumerDeserializer(){
// pass the class to the parent.
super(TestConsumer.class);
}
}
ผู้บริโภคของฉัน:
@ApplicationScoped
public class MyConsumer {
@Incoming("test-consumer")
//@Outgoing("aggregated-channel")
public void aggregate(Multi<Message<TestConsumer>> in) {
System.out.println(in);
}
}