古典建筑到卡夫卡,您如何实现以下目标?

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

我们正试图从我们的经典架构J2EE应用服务器/关系数据库转移到Kafka。我有一个用例,我不确定如何继续......

我们的应用程序使用Relation Database中的Scheduler导出,将来我们计划不在Relational Database上放置信息,而是直接从Kafka Topic的信息中实现导出。

我不确定最好的解决方案是配置消费者,使用与调度程序相同的计划轮询主题并导出内容。

或者在计划触发点创建KafkaStream以从Kafka Stream收集此信息?

你怎么看?

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

您想采用的方法在技术上是可行的,几乎没有可能的解决方案:

1)用Duration=<export schedule time>连续运行Kafka-Consumer

2)Cron触发kafka-streaming-consumer,其批处理持续时间与计划相同。对Kafka进行抵消提交。

3)Cron触发Kafka-consumer以编程方式处理偏移并根据您的时间表根据偏移量拉取记录。

重要注意事项

  1. 将retention.ms增加到远远超过您的计划批处理作业时间。
  2. 增加磁盘空间以适应数据量峰值,因为您要保留更长时间的数据。

风险与问题:

  • 可能会错过周末保留。
  • 另一个应用程序,如果错误地使用相同的group.id可以误导偏移量。
  • 在检索之前不能应用聚合/数学函数。
  • 您的应用程序无法根据任何参数过滤/提取记录。
  • 除非在外部管理偏移,否则应用程序无法重新读取记录。
  • 记录不会被格式化,即大多数是Json字符串或者其他一些格式。
© www.soinside.com 2019 - 2024. All rights reserved.