繁体   English   中英

设计和解决方案问题 - Spring Boot 与 Kafka 应用程序

[英]Design and Solution Question - Spring Boot with Kafka Application

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

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

要求摘要在此处输入图片说明

需要设计和输入我正在考虑如下解决方案 - 在此处输入图片说明 #1 我正在考虑拥有一个 Kafka 消费者,它可以读取一个 Kafka 主题并应用过滤器并整天继续创建文件。 一旦文件达到 100 MB,它将像 A1.csv、A2.csv 等一样旋转

#2 还有作业管理器可以创建 cron 作业,它可以每天拼接一次文件并上传到 FTP。 https://spring.io/guides/gs/scheduling-tasks/

#3 想在配置的基础上创建作业,就像明天如果我们想添加新作业,它可以很快。

#4 如何设计它以实现可扩展性。 由于即将到来的事件数量庞大。

#5 是否建议使用弹性缓存而不是创建多个文件,然后将它们粘贴到一个文件中。

#6 我还希望有一个故障安全逻辑,以便如果服务失败,我应该能够从中断的地方继续。

请指出我可以参考的任何现有解决方案等。 任何可以帮助作业/批处理调度程序以及管理配置的 API。

问候, 丹

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

让我知道你还需要知道什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM