需要帮助为kafka流应用程序构建逻辑

问题描述 投票:0回答:1

我是kafka的新手,在设计处理特定场景的方法时需要一些帮助。

我有两个kafka主题,USERS和EMPLOYEES。

USERS 
    key: userId
    value: [
        login: parkash,
        firstname: parkash,
        employee: 1
    ]


and 

EMPLOYEES. 
    key: employeeId
    value: [
        firstname: parkash
        lastname: kumar
    ]

我有一个方法,除了employee_id作为参数,并相应地返回数据。

我通过用户主题中指定的登录ID登录到应用程序。我想检索已登录用户的数据,但是我的方法接受employee_id作为参数。因此,因此,我必须首先从USERS主题获取员工ID,但在这里login_id也不是USERS主题的关键,而是价值的一部分。那么我该如何去做。

我必须首先从商店中的USERS主题获取所有数据,然后必须遍历商店中的所有区域并检查提供了登录ID的登录值,并必须返回该对象的员工ID。然后,我必须在该EMPLOYEE主题中查找该员工ID。我在这里吗?如果可以,实现此目的的更好方法是什么?当我在整个商店中进行迭代时,这种方法会导致性能问题吗?

我只是要求这种方法(不是任何实现)来更好地了解kafka流,例如商店创建,kafka流中的操作。

apache-kafka logic apache-kafka-streams
1个回答
0
投票

您需要通过使用所需的分区键创建新主题来转换USER主题。您的情况是employee id。如果在使用者组[0]中有多个分区和一个使用者,则有必要确保使用者/流处理器能够到达相应的消息。一旦两个主题具有相同的分区键,就可以使用instance [1] [2]的join将两个主题“合并”。就您而言,我想您将对KTable [3]更加感兴趣。

[0] Topics, partitions and keys

[1] https://docs.confluent.io/current/streams/index.html

[2] https://docs.confluent.io/current/streams/concepts.html#joins

[3] https://docs.confluent.io/current/streams/concepts.html#ktable

© www.soinside.com 2019 - 2024. All rights reserved.