我正在使用 Kafka Connect 接收器连接器从 Kafka 读取事件并将其插入数据库。 某些事件在其值负载中包含引用。我想使用 SMT 通过缓存查找来解析这些引用,以将它们在值负载中替换为其引用的实体。
例如:值负载从
{id: 12}
转换为 {name: "the-referenced-entity}
,其中缓存为 {12: "the-referenced-entity", ...}
思考解决方案:
此用例是否有已知的最佳实践?
如果你想共享一些缓存,你可以在每个worker的主机上运行一些分布式数据库。那么就只是本地网络调用,而不是远程网络调用。
否则,只需按原样生成 ID。例如,使用 Kafka Streams / ksqlDB 进行 Stream-Table join 操作,其中 ID 可以被转换。 (KStream 作业也可以在 Connect 工作线程上运行)