如何将rest服务消息转换为kafka主题?

4szc88ey  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(471)

我是Kafka社区的新人,我面临着一个具有挑战性的问题。我有两个应用程序通过restwebservice相互通信,主体是json消息。
如何使用kafka作为这两个应用程序之间的中间件,并且对应用程序的影响很小或为零?
这是我的现状:

我的未来情景:

我想在使用stm或一些拦截器来转换头和体。
有可能这样做吗?我知道我必须把身体从:

{
        "first name" : "Donald" ,
        "last name" : "Trump"
      },
      {
        "first name" : "Vladimir" ,
        "last name" : "Putin"
      }

收件人:

{
  "records":
  [
    {
      "key": "K001",
      "value":
      {
        "first name" : "Donald" ,
        "last name" : "Trump"
      }
    },
    {
      "key": "K002",
      "value":
      {
        "first name" : "Vladimir" ,
        "last name" : "Putin"
        }
    }
  ]
}

本质上,我的转换将更改消息的开头和结尾,而不是每个记录的字段。
有人做过这样的事,或者有人指示我该走哪条路?

wmtdaxz3

wmtdaxz31#

在kafka生态系统之外,您可以将nifi或streamset用于您正在寻找的这些“消息转换”,两者都可以进行http调用,也可以自己启动http服务器以直接使用api。

bybem2ql

bybem2ql2#

您可能需要一个kafka streams应用程序来实现这一点。它将从应用程序a订阅通过rest填充的源主题,根据需要转换消息并将其写入新主题,应用程序b可以从中使用它。
kafka streams是apachekafka的一部分,是一个java库,您可以用它构建流处理应用程序。还有ksql,它是kafka流之上的一种抽象,采用类似sql的语言,但我不确定它是否支持您在这里看到的转换类型。
由于您没有使用kafka connect,因此单消息转换(smt)在这里不适用。

相关问题