fix-protocol - QuickFIX/J 的消息传递合约是什么?我能保证订单交付吗?
问题描述
我刚刚开始使用 QuickFIX/J。我在阅读他们的文档时感到困惑的一件事是,由 FIX 协议的 QuickFIX 实现确保的消息传递合同到底是什么?
特别是,我知道 FIX 有一个内置的基于序列号的机制,实现可以利用它来处理乱序、丢失或重复的消息。但是 QuickFIX/J 是否已经内置了该功能?作为使用 QuickFIX/J 与修复引擎通信的应用程序,我可以假设:
从 QuickFIX/J 传递到我的应用程序的消息始终是有序的。
没有丢失的消息(QuickFIX/J 将自动处理重新请求)
没有重复的消息(QuickFIX/J 可以查看到目前为止收到的序列号并过滤掉可能的重复消息)
如果远程修复引擎崩溃,我将在引擎恢复时自动使用最后一个已知的序列号重新连接
如果我的应用程序崩溃,当它重新启动时,它是否能够从先前已知的序列号自动恢复会话?(例如,是否会有任何开箱即用的序列号持久性机制?)
解决方案
QuickFIX/J 实现了 FIX 会话协议,因此它为您处理所有会话级别的内容(连接、序列号……)。
- 是的,但可能有重复,请参阅 3。
- 是的。
- 不,实际上 QFJ 仍会将可能的重复项转发到您的应用程序,因为您仍然可能想要处理这些。如果需要,您需要自己过滤它们,基于
43/PossDupFlag
. - 是的。
- 是的。QFJ 有一些开箱即用的持久性机制,如
FileStore
,JdbcStore
,MemoryStore
.Store
如果需要,您也可以实现自己的。
以下是有关如何创建 QFJ 应用程序的链接,以防您尚未找到它:https ://github.com/quickfix-j/quickfixj#creating-a-quickfixj-application
推荐阅读
- c++ - 分段错误:无法修复问题
- python - 如何在 Python 中返回递归函数的列表
- email - Drupal 8 - 用户帐户邮件
- typescript - 使用条件接口正确输入高阶函数返回函数
- azure - 我想对日期早于今天 powershell 的用户进行排序
- regex - 正则表达式匹配大括号之间的任何内容,除了个位数数字?
- php - PHP如何发送和接收多选框
- python - Pygame角色没有出现,我如何改变我的背景形状
- c++ - 无法让 SymGetTypeInfo 工作(错误 1,函数不正确)
- material-ui - 将 flex-grow 添加到材质 ui Grid