【发布时间】:2019-01-25 14:09:26
【问题描述】:
我是 kafka 社区的新手,我正面临一个具有挑战性的问题。 我有两个应用程序通过 Rest webservice 相互通信,正文是 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"
}
}
]
}
基本上我的转换会改变消息的开头和结尾,而不是每条记录的字段。
有人做过类似的事情,或者知道我应该走哪条路吗?
【问题讨论】:
-
您能否提供更多背景信息来说明推动这一变化的原因?为什么要引入卡夫卡?为什么假设您仍将使用 REST?有了它,帮助会更容易:)
-
您好 Robin,我是解决方案架构师,我们正在更改关于集成的参考架构,我们建议从对等集成发展到中介集成。今天这两个应用是通过webservice集成的,body notation是json,我们想用kafka作为我们的中间件,不想给这些应用带来影响。这些是在将消息提取到主题之前翻译消息的主要原因。
-
我仍然不清楚的是,鉴于有多种语言的 Kafka 客户端库,您仍然想为此使用 REST 吗?
-
Robin,这两个应用程序是为了相互交流而定制的 COTS,现在我们想在这个场景中引入 kafka,对这些应用程序的影响为零
-
明白了,我现在明白了:)
标签: json apache-kafka confluent-platform kafka-rest