Java 设计和解决问题-带Kafka应用程序的Spring Boot

Java 设计和解决问题-带Kafka应用程序的Spring Boot,java,spring,spring-boot,apache-kafka,architecture,Java,Spring,Spring Boot,Apache Kafka,Architecture,我是Springboot和micro服务开发的新手,有一个关于Springbot服务设计的问题 要求- 我们有一个要求,Springboot服务需要单独收听3或4个不同的Kafka主题,并分别创建3或4个csv文件(在过滤事件消息中的一些属性并在一天中的不同时间将文件上载到FTP服务器之后) 需求汇总 所需的设计和输入 我正在考虑下面这样的解决方案- #1我想拥有一个卡夫卡消费者,它可以阅读一个卡夫卡主题,应用过滤器,整天不停地创建文件。一旦文件达到100MB,它就会像A1.csv、A2.cs

我是Springboot和micro服务开发的新手,有一个关于Springbot服务设计的问题

要求- 我们有一个要求,Springboot服务需要单独收听3或4个不同的Kafka主题,并分别创建3或4个csv文件(在过滤事件消息中的一些属性并在一天中的不同时间将文件上载到FTP服务器之后)

需求汇总

所需的设计和输入 我正在考虑下面这样的解决方案- #1我想拥有一个卡夫卡消费者,它可以阅读一个卡夫卡主题,应用过滤器,整天不停地创建文件。一旦文件达到100MB,它就会像A1.csv、A2.csv等那样进行旋转

#2还要有作业管理器,它可以创建cron作业,每天可以缝合一次文件并上传到FTP。

#3希望在明天的配置基础上创建工作,如果我们想添加新工作,可以很快

#4如何进行设计以实现可扩展性。随着活动的到来,人数将是巨大的

#5建议使用弹性缓存,而不是创建多个文件,然后将它们粘在一个文件上

#6我还希望有一个故障安全逻辑,这样,如果服务出现故障,我应该能够从中断的地方继续

请告诉我任何我可以参考的现有解决方案等。任何有助于作业/批处理计划程序以及管理配置的API

问候,, 丹

  • 您可以在Kafka中设置检查点,因此如果应用程序失败,您可以从同一点开始使用事件。检查点只在您的工作完成后移动
  • 在这种规模下,最好有火花作业等来加速计算
  • 您可以使用诸如Redis或Aerospike之类的分布式缓存集群来缓存一些文件以进行快速读取
  • 很好,作业触发时间是可配置的,可以在明天更改

  • 让我知道您还需要知道什么。

    考虑替换第二个框,它将读取主题并将文件创建到弹性缓存,然后使用文件生成器从缓存读取和创建文件。请建议是否有可用的Springboot API,可用于通过读取配置文件来创建/管理作业。您可以查看: