我们有一个 ActiveMQ 队列,每秒将接收 100k 个股票订单消息(每条消息包含 json 格式的股票名称、卖出价、买入价)。 在 100k 消息/秒中,可以有 n 条单一股票的消息。如果我们收到同一股票的多条消息,那么我们需要使用 java 以相同的顺序处理所有这些消息。 我们无法在一台服务器中使用单个监听器每秒处理 100k 消息。 需要使用多个监听器和服务器来处理它,但使用队列中放置的相同顺序在 UI 中显示结果。
读取股票队列-->验证请求-->更新UI中的股票价格
消息示例:- { 股票名称:"TCS", 售价:“102”, 出价:“100” }
您能为上述问题提出解决方案吗?
最佳答案
这是我的建议:
您需要根据股票名称将队列拆分为子队列。您可以根据股票名称的第一个字母进行拆分。这将为您提供充足的并行功能,同时确保同一库存的所有消息都落在一个队列上。
主队列需要一个读取器,但它所做的只是将消息转发到子队列。
关于java - 如何在java中使用多个服务器以相同的顺序处理队列中的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56276795/