jpos QMUX 是不是支持限制并发 ISO 请求的数量?
Posted
技术标签:
【中文标题】jpos QMUX 是不是支持限制并发 ISO 请求的数量?【英文标题】:Do jpos QMUX supports limiting number of concurrent ISO request?jpos QMUX 是否支持限制并发 ISO 请求的数量? 【发布时间】:2021-10-15 02:17:04 【问题描述】:我更新了我的旧 spring/java 应用程序,它将事务推送到远程 ISO 服务器(银行)。使用经典方法 (channel.seng(isoMsg)) 通过同步方法,因为通过同一通道发送多个 ISO 请求使得很难映射请求和响应。由于每个事务需要 5 秒才能接收到来自远程服务器的响应,因此有太多事务一直留在队列中。因此,它达到了所有即将进行的事务都将超时的地步。为了摆脱这个问题,我开始实现 QMUX。该系统现已上线。
现在我的问题是,如果已经有 50 笔交易未到达或超时,银行告诉我不要发送交易。
所以,现在我需要配置 MUX 框架,以便一旦系统等待 50 个响应,框架应该停止发送并应该在我端排队,当它收到 1 个响应时,它可以再次发送一个事务以保持总数等待响应的数量小于或等于 50。 如何使用 jpos QMUX 实现这一目标?
【问题讨论】:
我相信在QMUX
级别上没有开箱即用的配置,但是您可以从事务管理器中的事务参与者调用它并将事务管理器配置为具有max-sessions=50
。否则,您可以在问题中请求该功能或在项目的 PR 中实现它
【参考方案1】:
您可以在 ChannelLevel 使用org.jpos.iso.filter.ThroughtputControlFilter
[1],但不能在 MUX 级别使用。在调用 MUX 之前,您可以从它的实现中挑选一些想法在您的代码中处理它们。
您也可以使用信号量。
[1]http://jpos.org/doc/javadoc/org/jpos/iso/filter/ThroughputControlFilter.html
【讨论】:
以上是关于jpos QMUX 是不是支持限制并发 ISO 请求的数量?的主要内容,如果未能解决你的问题,请参考以下文章