【发布时间】:2016-06-20 17:22:29
【问题描述】:
我正在设计一个通知应用程序的组件(组件 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。我正在研究将消息批处理在一起。
任何关于缩放的设计想法将不胜感激
【问题讨论】:
标签: java multithreading concurrency rabbitmq activemq