请考虑以下情况:
Application - MessageReaderApplication (Spring Boot Application)
Deployed in - PaaS_node_1 and PaaS_node_2
Queue Manager - QM
Queue - QM_QUEUE
Concurrency - 2
MessageReaderApplication从QM_QUEUE读取消息,并根据消息中的client_number处理它们(client_number是消息的唯一属性)。该应用程序对于两条独立的消息(不同的[[client_number)表现良好,因为一条消息的处理独立于其他消息。
问题出在同一时间两次在同一时间两次为同一客户端(相同client_number)发送消息时。在这种情况下,理想的操作是在第二条消息之前处理第一条消息。但是在这里我们无法预测消息的执行顺序。假设PaaS_node_1选择了第一条消息并开始对其进行处理,同时PaaS_node_2选择了第二条消息,并在PaaS_node_1处理第一条消息之前完成了处理。
我们如何在JMS消息传递中实现这种并发控制?