java - 如何在java中使用多个服务器以相同的顺序处理队列中的消息

标签 java multithreading jms activemq

我们有一个 ActiveMQ 队列,每秒将接收 100k 个股票订单消息(每条消息包含 json 格式的股票名称、卖出价、买入价)。 在 100k 消息/秒中,可以有 n 条单一股票的消息。如果我们收到同一股票的多条消息,那么我们需要使用 java 以相同的顺序处理所有这些消息。 我们无法在一台服务器中使用单个监听器每秒处理 100k 消息。 需要使用多个监听器和服务器来处理它,但使用队列中放置的相同顺序在 UI 中显示结果。

读取股票队列-->验证请求-->更新UI中的股票价格

消息示例:- { 股票名称:"TCS", 售价:“102”, 出价:“100” }

您能为上述问题提出解决方案吗?

最佳答案

这是我的建议:
您需要根据股票名称将队列拆分为子队列。您可以根据股票名称的第一个字母进行拆分。这将为您提供充足的并行功能,同时确保同一库存的所有消息都落在一个队列上。 主队列需要一个读取器,但它所做的只是将消息转发到子队列。

关于java - 如何在java中使用多个服务器以相同的顺序处理队列中的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56276795/

相关文章:

java - Spring Security 5.3.2 OAuth 2,资源所有者密码凭证流程 - 如何向授权服务器 uri 添加额外的 HEADER 参数

java string.getIndex 忽略标点符号的正确索引

Python threading.Thread、范围和垃圾收集

java - Spring JMS 消息监听器容器

java - Spring Boot Log4j2 配置日志大小维护问题

java - gmaps primefaces 问题

c - 没有互斥量的 pthread_cond_wait 的潜在缺陷

python - 具有两个无限函数的多线程

java-8 - 对象消息上的 JMS 消息选择器

jms - ActiveMQ 中的路由