使用Kafka Streams在依赖对象之间进行排序

时间:2018-03-14 17:04:21

标签: apache-kafka apache-kafka-streams

我正在从表示依赖实体的RestfulAPI读取数据。 例如来自/学生我得到学生对象和/老师我得到教师对象。 学生与教师对象相关联(学生有教师ID)。 问题是我从Kafka /学生到学生话题,从/从教师到教师话题,但是当我尝试与Kafka Streams一起加入他们时,有时学生的事件在他们的老师活动到来之前到来,因此我没有收到学生和老师的联合记录(由于早到的学生)。 使用窗口不是最佳选择,因为我希望始终获得学生更新。

  1. 我的问题是 - 如何同步事件,以便我能够解决依赖对象。
  2. 目前我正在手动轮询API服务并将结果生成给Kafka - 有没有办法以简单的方式使用Kafka Connect代替Rest API作为源?

1 个答案:

答案 0 :(得分:0)

以下方法应该有所帮助:

  1. 为教师主题创建一个流,因为传入的记录将是稳定的。
  2. 要处理传入的学生流,请为学生创建KTable
  3. 在教师和学生之间进行非窗口加入。
  4. KTable是一个更改日志流,因此所有传入记录都将被视为插入或更新。

    您可以参考this documentation