为每次发布添加未来的回调可以吗?

Is it fine to add future callback for each publish?

我已经抽象了消息模式(事件)。 Event 有不同的实现,它们作为消息发布。他们还实现了自己的未来回调方法。

    @Async
    @Override
    public void sendAsyncEvent(Event event) {
        try {
            ListenableFuture<SendResult<String, Event>> future = kafkaTemplate.send(topicName, event);
            future.addCallback(event.getFutureCallback());
        } catch (Exception e) {
            log.error("error", e);
        }
    } 

我的问题是,为每个事件消息添加回调可以吗?恐怕之前添加的回调将保留而不会被删除。我不希望它们堆积在内存中。只是不确定上面的用法是否正确

是的,很好;当没有更多的引用时,回调(以及未来和事件)最终将被垃圾收集。