gpt4 book ai didi

spring - 可以使用 Spring 数据 Elasticsearch 的可扩展 Elasticsearch 模块吗?

转载 作者:行者123 更新时间:2023-12-03 01:13:00 25 4
gpt4 key购买 nike

我正在设计一个可扩展的服务(springboot),使用它的数据将被索引到 Elasticsearch 。
用例:
我的应用程序使用 6 个具有相同架构的数据库(mySql)。每个数据库都迎合特定区域。我有一个微服务,它以类似的方式连接到所有这些数据库并将特定表中的数据索引到 elasicsearch 服务器(v6.8.8),每个数据库有 6 个 Elasticsearch 索引。Quartz jobs受雇于此目的,RestHighLevelClient .还有每秒运行的增量作业以使用审计和索引查找更改。
当前问题:

  • 当前的设计不可扩展 - 一项服务完成所有工作(数据加载、映射、批量更新插入)。因为索引是通过 quarts 作业完成的,所以扩展服务(运行多个实例)将多次运行同一个作业。
  • 无故障转移 - 寻找分布式 Elasticsearch 节点并将数据索引到两个节点。如何有效地做到这一点。

  • 我正在考虑 spring data elasticsearch在将数据持久化到数据库时同时索引数据。
    它提供所有功能吗?我用 :
  • 从安装模板到创建/删除索引、别名的 Elasticsearch。
  • 蓝色/绿色部署 - 索引非事件节点并更改别名。
  • 批量更新插入、查询、聚合..等

  • 欢迎任何其他解决方案。谢谢你的时间。

    最佳答案

    您的用例之一是以可扩展的方式将数据从 DB (Mysql) 移动到 ES。它基本上是一个 CDC(变更数据捕获)管道。
    您可以使用kafka-connect相同的框架。
    流程应该是:

  • 阅读Mysql事务日志 => 将数据发布到 Kafka(这可以使用 Debezium Source Connector 来完成)
  • 使用来自 Kafka 的数据 => 将其推送到 Elastic Search(这可以使用 ES-SYNC Connector 完成)

  • 为什么要使用框架?
  • 使用 connect 框架可以直接从 Mysql Transaction 日志中读取数据,无需编写代码。
  • Connect 框架是一个分布式和可扩展的系统
  • 它将减少数据库的负载,因为您现在不需要查询数据库来检测任何更改
  • 易于设置
  • 关于spring - 可以使用 Spring 数据 Elasticsearch 的可扩展 Elasticsearch 模块吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63581344/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com