首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >事件源是否适用于批处理输入?

事件源是否适用于批处理输入?
EN

Stack Overflow用户
提问于 2017-07-07 21:53:05
回答 2查看 1.2K关注 0票数 1

我有一个用例,在这个用例中,应用程序的输入是成批的XML文件。例如,每晚的一批银行交易。我试图看看是否可以使用事件源来创建事件日志。根据我到目前为止所读到的内容,这些示例似乎是基于用户驱动的输入(单击流、用户界面的更新等等)。使用分布式日志机制(如Kafka)的事件来源是否是基于批/文件的输入的有效方法?

以下是我想采取的办法:

  1. 将输入接受为文件/xml中的批处理
  2. 在内存中运行一些基本验证。
  3. 将批处理输入转换为一系列事件。
  4. 将事件日志写入Kafka主题。
  5. 使用事件日志将数据存储到数据库中,将事件发送到搜索引擎,更新缓存,运行火花作业进行聚合等等。
  6. 对其他批处理重复此过程。

如果这种方法效率不高,还有哪些其他可供选择的方法可用于对这类输入进行分布式处理?

EN

回答 2

Stack Overflow用户

发布于 2017-07-08 11:32:35

您的输入是来自看起来像事件存储的东西吗?例如,一个数据库,作为一个永恒的来源的真相,附加的事件。

--如果是这样的话,您就有了使用事件源的基础,另外还有CQRS。(它们不是一回事)

你必须意识到的是所谓的写方/命令方.已经为你做好了。

带有事务的传入一批XML文件..。每个事务已经是一个事件。这听起来不像你需要把这些转化成事件,然后把这些放入卡夫卡。你可以把它们映射到卡夫卡中,然后所有主题的订阅者都可以做相应的事情。

有效地实现了事件源+ CQRS的读取端。

在实际意义上是,除非您要在编写端(生成/接收用户输入的地方)做一些事情.我不会太担心事件来源的的微妙之处,因为它与DDD和CQRS有关。我将简单地看作是将数据分发给多个服务的一种方式。

并确保只在收到这些XML文件时才会考虑缓存、搜索引擎等的更新方式。

票数 1
EN

Stack Overflow用户

发布于 2017-07-08 20:38:24

如果这些xml文件中的每个单独事件都有时间戳,那么您可以将输出到Kafka看作是延迟到达事件的一股动力。卡夫卡允许你在这些信息上设定事件时间,作为事件的时间戳,而不是卡夫卡摄入的时间。这样,任何下游处理应用程序(如Kafka流)都可以将事件置于正确的时态上下文中,并聚合到适当的时间窗口或会话窗口中,甚至可以与其他实时输入连接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44980176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档