我有Kafka-Connect,我需要将其与REST API集成在一起,当使用单输入多数据模型调用该API时,效果最好。
想象一下:
源主题-> REST请求-> REST响应-> 接收主题 >
Kafka源主题:
{"Foo":"Bar345354"}
{"Foo":"Bar454354"}
REST请求:
{
"doWorkOn": {
"message1Foo": "Bar345354",
"message2Foo": "Bar454354",
...
}
}
REST响应:
{
"result": {
"message1Foo": "Bar948474",
"message2Foo": "Bar434343",
...
}
}
卡夫卡水槽主题:
{"Foo":"Bar948474"}
{"Foo":"Bar434343"}
所以我想在给定的时间范围内转换多个消息。
有关Kafka-Connect转换(https://docs.confluent.io/current/connect/transforms/index.html)的文档指出,该文件处理的是 SMT 或单输入单数据模型。因此,我正在使用Kafka-Connect搜索 MMT 对应对象。
到目前为止,我找不到它。谁能指出有哪些选择?
答案 0 :(得分:1)
听起来Kafka Connect在这里并不适合。 Kafka Connect连接器适用于 :
这些都不符合您在问题中描述的模式。我认为解决方案在于编写流处理应用程序。从一个主题获取数据,执行某些操作(外部REST调用),然后将其写回到另一个Kafka主题。
为此,Kafka Connect的对应对象为Kafka Streams。
Edit :再考虑一下这一点,在Confluent Replicator和MirrorMaker 2中,它们都作为Kafka Connect连接器,从一个主题读取并写入另一个主题,因此存在这种模式的优先级。