gpt4 book ai didi

java - 哪个 Java 阻塞队列最适合多生产者和单个或多个消费者场景?

转载 作者:行者123 更新时间:2023-12-04 20:51:23 24 4
gpt4 key购买 nike

哪个 Java 阻塞队列最适合多生产者和单个或多个消费者场景?

我正在使用 LinkedBlockingQueue 进行测试,但出现 OutOfMemoryError 异常。

我正在努力实现以下目标。

  1. 生产者创建一个对象并放入队列中。
  2. 消费者从队列中抓取数据并插入数据库。会有 400 个生产者,我可以根据需要调整消费者。

如果有任何想法,请告诉我。

更新

Producer : 它应该监听 Server Socket。它从套接字读取数据并构造对象(域对象)并放入队列中。

消费者:从队列中取出对象并插入数据库(支持 Hiberante 和连接池)

这是我的真实环境。流程应该能够处理至少 200 条记录/秒。我正在测试流程的可扩展性以及如何改进它。我希望这会提供更好的想法。

有用的链接:

vmoptions

Monitoring and Managing Java SE 6 Platform Applications

BlockingQueue

最佳答案

问题不在于您使用哪个 Queue 实现,而是如何解决限制生产者的问题如果您的消费者跟不上 .一种可能的解决方案是创建一个具有固定容量的 LinkedBlockingQueue,并让您的生产者调用 offer(E e),如果出现以下情况,它将返回 false队列已满。

另一种可能的解决方案是相应地调整生产者和消费者的数量。

关于java - 哪个 Java 阻塞队列最适合多生产者和单个或多个消费者场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1243733/

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