java设计基于spring的kafka监听器/生产者的类结构

pdtvr36n  于 2021-06-06  发布在  Kafka
关注(0)|答案(0)|浏览(344)

我要写多个听众都会听不同的主题。一旦他们收到消息,他们将应用他们特定的业务逻辑,然后将结果发布到 TopicX .
从面向对象的Angular 来看,我是如何看待它的

@Service
public abstract class MessageGenerator {   
    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    @Value("${app.topic.result}")
    private String topic;

    @KafkaListener(topics = "${app.kafka.incoming.topicOne}")
    public void listen(@Payload String message) {
        String msgToBePublished = applyBusinessLogic(message);
        kafkaTemplate.send(topic, message);
    }

    public abstract String applyBusinessLogic(message);
}

我的想法是创建这个基类,然后实现特定的业务逻辑。通过这样做,我将处理一个冗余的Kafka相关的消息接收/发送代码。
考虑到每个实现都有不同的 incoming.topicX 听我说,我不知道如何用正确的oop方式实现它。我能想到的一些方法
我要留着吗 listen 方法专用于特定实现?
而不是创建继承模型。我可以创建一个通用的 sender 与…同班 kafkaTemplate . 每个 businesslogic 班上会有这个 sender 类来发布消息。
你们有什么建议。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题