【问题标题】:Architectural design for consuming big volume of data from different data sources使用来自不同数据源的大量数据的架构设计
【发布时间】:2019-12-02 12:32:54
【问题描述】:

目前的产品实现是:在后端我们使用的是 springboot,对于前端我们有 React\Redux 应用程序。

到目前为止,我们只使用一个包含少量数据的数据库 (Oracle)。最近由于业务需求(客户端的更多信息),我们需要从包含大量数据的更多数据库(可以是 Oracle 和 MySql)中提取更多数据。

由于数据量大,通过 Spring Boot 使用常规 SQL 执行此操作将无法正常工作。我们不能在数据库中工作,因为它们属于外部客户,我们还需要合并数据进行分析。

总结 - 我正在寻找一些可以处理不同数据源的中间件产品,能够处理大量数据,能够创建 API 以处理来自不同来源的数据,最后这需要非常快,以便在客户端 (Rest\React) 上查看输出。

很高兴听到您的故事\经验和建议。

谢谢

【问题讨论】:

  • 我猜你所说的所有问题都与big data有关。有许多开源软件和技术可以帮助您。我只是建议您Talend,这是一个包含大数据工具的数据集成工具。我认为大数据专家可以提供更多详细信息。

标签: java reactjs spring-boot architecture


【解决方案1】:

一种可能的解决方案是使用多个Kafka Connect 源连接器从不同的数据源中提取数据。他们(连接器)会将数据放入 Kafka 主题中。 Kafka 是一个非常快速可靠的流媒体平台。

如果您的应用程序需要在将数据提供给前端之前对其进行处理,那么您可以编写一个应用程序来执行此操作并公开所需的端点以公开数据。

如果您需要访问原始数据,那么 Kafka 生态系统有 REST proxy,它通过 REST 公开主题数据。

简而言之,您的管道看起来像

数据源 -> Kafka Connect -> Kafka -> Kafka REST 代理/自定义数据处理应用程序 -> React 前端。

【讨论】:

  • 谢谢,这看起来是个不错的方向。 Apache Spark 怎么样?你也有这个产品的背景吗?
  • 使用 Confluent 实现与原样使用 Kafka 有什么好处?
【解决方案2】:

我们最近收到了来自客户的类似要求。解决方案完全基于 AWS 云原生和无服务器。后端(来自不同来源的数据整合和数据检索到 React)可以通过几种不同的方式完成。

数据整合后端 - 现有的 Java 代码可以分解为 Lambda Java 函数,并且通过启用 VPC,这些代码还可以与本地数据源进行通信。或者,如果商业工具准备就绪,可以使用 Batch 或 Databricks。

React 的数据检索 - 无服务器 Java 函数(如果需要利用现有代码/逻辑)。

数据存储 - Redshift?取决于您的预算。

【讨论】:

    猜你喜欢
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 2012-03-15
    相关资源
    最近更新 更多