gpt4 book ai didi

java - 扩展大型数据集的大型并发 API 请求

转载 作者:行者123 更新时间:2023-12-01 10:16:57 24 4
gpt4 key购买 nike

我正在设计一个通知应用程序的组件(组件 A),它与 REST API(组件 B)集成,最多可以接受 10,000 个并发请求。发送的数据小于1KB,将存储在NoSQL DB中,该数据库将由组件A读取,然后尽可能并发地发送到组件B。我想同时从组件A向组件B发送10,000个请求。我计划在组件A和B之间放置rabbitmq或activemq,以控制线程计数并扩展并发处理,以便发送大量请求并发请求(10,000)。

组件A:

    -read all documents (less than 1kb each) from NoSQL database 
-create JMS message and push data to rabbitmq or activemq
-the 10,000 rabbitmq or activemq listener/consumer threads will concurrently consume,
transform NoSQL object graph to the request needed by component B and call component B
and repeat until all messages are sent to component B

组件B:

-can't handle more than 10,000 concurrent requests
-wont support a bulk API

数据集可能达到数百万,并且需要尽快处理一百万条消息并将其从组件 A 发送到组件 B。我正在考虑将消息批量处理在一起。

任何有关扩展此功能的设计想法将不胜感激

最佳答案

听起来您已经走在正确的道路上了

RabbitMQ 每分钟可以处理 100,000 多条消息,因此使用组件 B 处理 10K 并发请求应该不会有任何问题

作为消息使用者,您可以使用consumer prefetch设置告诉 RabbitMQ 它一次可以处理多少条消息。

对于从 RabbitMQ 读取、转换对象图并发布到 REST api 的代码,将预取设置为 10,000(或更少)。一切就绪后,您就可以开始了。

关于java - 扩展大型数据集的大型并发 API 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35839008/

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