gpt4 book ai didi

java - 如何使用 Spring Java 应用程序使 IBM MQ 监听器进程缓慢

转载 作者:行者123 更新时间:2023-12-02 03:06:10 25 4
gpt4 key购买 nike

我们正在尝试将遗留系统迁移到微服务在Paas环境中,我们有调度程序作业来触发消息并将消息一一放入MQ中,并且我们在微服务中拥有MQ监听器来获取消息并创建请求并将请求发送到外部方。

问题来了,我们的微服务能够对外部服务进行异步调用,但我们的外部服务无法处理异步调用,因此它返回错误的数据。例如,我们每分钟访问外部服务 40 到 60 个请求,而外部服务每分钟只能处理 6 个请求。

那么如何让 MQ 监听器处理缓慢。

我尝试将 setMaxConcurrenceConsumer 减少到 1 并且使用 observable.toblocking.single() 使进程仅在一个线程中运行。

我们在微服务中使用 RxJava。

最佳答案

听起来您的微服务或外部服务没有遵循请求-回复消息传递的用例。

(1)外部服务是否设置了Reply消息的Correlation ID与Request消息的Message ID?

(2) 您的微服务是否正在执行 MQGET,并使用通过相关 ID 获取的匹配选项。

您可以将错误归咎于外部服务,但如果您的微服务实际上收到了错误的消息,那么这是您的应用程序的错误。即,您的微服务是否只是获取队列中的“下一条”消息?

阅读此答案:How to match MQ Server reply messages to the correct request

这里有一个解释(看起来像是 90 年代的内容,但有很好的信息):https://www.enterpriseintegrationpatterns.com/patterns/messaging/RequestReplyJmsExample.html

关于java - 如何使用 Spring Java 应用程序使 IBM MQ 监听器进程缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57022471/

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