有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java最佳实践是在集群环境中使用Quartz从一个数据库读取记录、验证并插入另一个数据库

我们需要在源数据库中有数百万条记录,我们需要读取这些数据,验证并插入到目标数据库中。这需要按照配置的计划时间进行(比如每天下午12点)。我们希望在30分钟内处理500k记录,从而实现SLA。我们的集群环境有4个JVM

技术堆栈:甲骨文、Spring Quartz

我们使用Spring Quartz设计了解决方案,其中一个作业负责将工作分配给其他作业

石英作业(工作分配器):该作业的职责是将工作分配给不同的工人/工作。此表将读取记录范围,并将该范围与工作JVM(处理数据的工作JVM)一起记录在临时表中。这将只由4个JVM中的一个运行。如果一个JVM触发它,另一个JVM将不会运行此作业

石英作业(工人):此作业的职责是读取工作分发服务器的临时表,并获取分配给运行此作业的JVM的范围。此作业将按照指定的范围从源数据库中获取数据,执行验证并插入目标数据库。此作业将产生多个线程来处理分配的记录数

我发布这个问题只是想了解一下这种方法。还有其他更稳健的方法吗


共 (1) 个答案

  1. # 1 楼答案

    我也有过类似的经历,为了让你的生活更轻松,Apache Spark允许你作为一个工人来编程你的ETL(Extract Transform Load)应用程序,但下面会为你分配工作负载,数据也可以是弹性的,并且在集群失败时能够继续运行