gpt4 book ai didi

java - 跨多个进程均匀分布数据库记录

转载 作者:行者123 更新时间:2023-11-29 06:41:25 25 4
gpt4 key购买 nike

我有一个包含 300 万条记录的数据库表。一个 java 线程从表中读取 10,000 条记录并进行处理。处理后它跳到下一个 10,000 等等。为了加快速度,我有 25 个线程执行相同的任务(读取 + 处理),然后我有 4 个物理服务器运行相同的 java 程序。所以实际上我有 100 个线程做同样的工作(读取 + 处理)。

我使用的策略是使用一个 sql 过程来完成抓取接下来的 10,000 条记录并将它们标记为正在由特定线程处理的工作。但是,我注意到线程似乎在等待一段时间以尝试调用该过程并获得响应。我还可以使用哪些其他策略来加快此数据选择过程。

我的数据库服务器是mysql,编程语言是java

最佳答案

处理这种情况的惯用方法是 设计模式。在 Java 领域实现它的惯用方式是使用 .

本质上,您需要一台主服务器读取记录并将它们推送到 JMS 队列。然后,您将有任意数量的消费者从该队列中读取数据并相互竞争。具体实现方式取决于您:您要发送包含完整记录还是仅包含 ID 的消息?一条消息中的所有 10000 条记录还是每条消息的记录?

另一种方法是 , 查看 .但是学习曲线有点陡峭。

关于java - 跨多个进程均匀分布数据库记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11508824/

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