使用Jpos只创建IsoMsg对象并使用通道、连接、发送和接收方法而不是部署Q2有什么缺点?
我在Spring应用程序中使用Jpos来处理从POS终端到不同交易处理器的金融交易。
我目前的设置只涉及创建一个IsoMsg对象,设置所需的字段,然后创建适当的通道,调用通道发送和接收方法来处理事务,如。
下面是我发送网络管理请求的示例:
ISOMsg m = new ISOMsg ();
m.setMTI ("0800");
m.set (3, "000000");
m.set (41, "00000001");
m.set (70, "301");
.......................................
.......................................
(other parts of iso message omitted)
ISOChannel channel = new ASCIIChannel ("<processor_ip>", <processor_port>, new GenericPackager());
channel.connect();
channel.send(m);
IsoMsg response = channel.receieve();
字符串
然而,jpos程序员指南建议使用Q2而不是上述方法,但我发现Q2部署非常复杂,配置量很大。
阅读程序员指南的Q2部分可以快速介绍许多名称不太容易理解的复杂组件,例如通道适配器,参与者,空间,过滤器,查询主机等。
我更喜欢创建一个IsoMsg对象、通过一个通道打开一个连接、发送IsoMsg和接收响应的简单实现。
我的问题是,与Q2相比,使用更简单的实现有哪些缺点?与仅通过普通通道进行通信相比,Q2部署有哪些优势
2条答案
按热度按时间rjee0c151#
第一个缺点是处理时间。使用
Q2
中的ChannelAdaptor
,您可以始终连接通道,因此您无需建立TCP/IP连接的开销,这涉及每个请求中的一些额外步骤。此外,如果没有
Q2
和事务管理器,您必须实现所有的超时逻辑。例如,在您的代码段中,如果另一端没有响应,则不处理超时。您的代码将被冻结,直到通过其他方式重置连接。您的代码将很快变得足够复杂,试图克服jPOS团队在ISO 8583事务处理实现的几十年经验中已经整理出的挑战。
uttx8gqw2#
我建议您尝试这里描述的网关教程,您将看到Q2的一切都非常容易。
http://jpos.org/tutorials
顺便说一句,你可以从你的SB应用程序中运行Q2,只需要几行代码,看看这个Gist:
https://gist.github.com/ar/86a4a24384d029c35f784079007393b0#file-q2boot-java