当前,我有一个接收器连接器,该接收器从主题A获取数据并将其发送到外部服务。
现在我有一个用例,基于某种逻辑我应该将其发送给主题B而不是服务。 并且此逻辑基于目标服务的响应,它将基于数据返回响应。 因此,因为每次我无法使用流api时都应将数据发送到目标系统。
这可行吗?
还是应该手动将kafka生产者添加到接收器?如果是这样,有什么缺点吗?
答案 0 :(得分:0)
第一种选择是创建一个custom Kafka Connect Single Message Transform,它将实现所需的逻辑并可能也使用ExtractTopic
(取决于您的自定义smt的外观)。
第二个选择是建立自己的消费者。例如:
步骤1:在主题A的上方再创建一个主题
再创建一个主题,例如topic_a_to_target_system
第2步:实施自定义消费者
实现一个Kafka使用者,该使用者使用主题topic_a
中的所有消息。
此时,您需要实例化一个Kafka Producer,并根据逻辑决定是否需要将该主题转发到topic_B
或目标系统(topic_a_to_target_system
)。
步骤3:在topic_a_to_target_system
上启动接收器连接器
最后启动您的接收器连接器,以便将数据从主题topic_a_to_target_system
接收到目标系统。