我想询问 QuickFIX/J 和 Spring Boot QuickFix 启动器的一些故障转移策略
例如,如果我有一个 FIX 引擎服务器,并且整天收到大量 FIX 消息,然后服务突然变得不可用。
- 当服务再次启动时会发生什么?它将从哪里开始再次读取新的 FIX 消息?
- 当服务开始出现重负载并且 kubernetes 开始放置第二个实例时会发生什么?有什么办法可以保持两个微服务之间的数据一致性,以免它们两次处理同一条消息?
- 如何处理多个微服务上的多个 session 并同时进行扩展
感谢您的回复,我刚刚开始使用这个库
最佳答案
FIX 引擎将根据收到的最后一条消息的序列号来同步消息。您可以在此处阅读基础知识:FIX message recovery
由于您是 FIX 协议(protocol)的新手,因此整个页面可能是让您熟悉该协议(protocol)的良好起点。当然,FIX 引擎会自己完成 session 级相关的工作,但了解基础知识总是有好处的。我对 Kubernetes 确实没有任何深入的了解,但这里重要的是 FIX session 是点对点连接。这意味着对于同一个 session (由
SessionID
标识,通常由BeginString
组成(例如FIX.4.4
)、SenderCompID
、TargetCompID
)您将只有一个发起者(即客户端)和一个接受者(即服务器)。
因此,应避免启动连接到同一 FIX session 的第二个服务实例。如果您有多个 session 分布在多个实例上,这可能会起作用。抱歉,我不太明白您的意思。
关于java - QuickFIX/J - 故障转移策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66571869/