从Quarkus应用程序中,我需要将 tombstone 消息发布到压缩的 Apache Kafka 主题。由于我的用例是必要的,因此我使用 anEmitter
来向主题发送消息(如 quarkus 博客中所建议的那样)。非墓碑消息(带有效负载)的代码是:
@Dependent
public class Publisher {
@Inject
@Channel("theChannelName")
Emitter<MyDataStructure> emitter;
public CompletionStage<Void> publish(final MyDataStructure myData) {
OutgoingKafkaRecordMetadata<String> metadata =
OutgoingKafkaRecordMetadata.<String>builder()
.withKey(myData.getTopicKey())
.build();
return CompletableFuture.runAsync(
() -> emitter.send(Message.of(myData).addMetadata(metadata)));
}
}
我希望这些工具可以让我制作一个带有Emitter
有效载荷的墓碑消息。不幸的是,工厂方法的所有实现,允许提供元数据(需要提供消息密钥),指定有效负载,不能是 {@code null}。<M extends Message<? extends T>> void send(M msg)
Message
null
Message.of(..)
使用Emitter
?