古典建筑到卡夫卡,你如何实现以下几点?



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

我们的应用程序使用关系数据库的调度程序导出,将来,我们计划根本不将信息放在关系数据库中,而是直接从 Kafka 主题中的信息中实现导出。

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

还是在计划触发点创建 KafkaStream 以从 Kafka 流中收集此信息?

你觉得怎么样?

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

1(连续运行卡夫卡消费者与Duration=<export schedule time>

2( Cron 触发的 kafka 流消费者,批处理持续时间与计划相同。做偏移提交到 Kafka。

3( Cron 触发的 Kafka 消费者按照您的计划以编程方式处理偏移量并根据偏移量拉取记录。

重要注意事项:

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

风险与问题:

  • 周末保留可能会错过。
  • 另一个应用程序如果错误地使用相同的 group.id 可能会误导偏移量。
  • 在检索之前不能应用聚合/数学函数。
  • 应用程序无法基于任何参数筛选/提取记录。
  • 除非在外部管理偏移量,否则应用程序无法重新读取记录。
  • 记录不会被格式化,即主要是 Json 字符串或其他一些格式。

最新更新