SocketInitiator 的 queueCapacity 使用情况 (QuickFIX/J)

queueCapacity usage for SocketInitiator (QuickFIX/J)

我最近开始使用 QuickFIX/J 库与使用 FIX 协议的 APA(批准的发布安排​​)服务通信和发送实时报告消息。

SocketInitiator 构造函数中的一个参数是 queueCapacity 但不幸的是,文档中没有太多关于其用法的信息。据我所知,它用于确定 SocketInitiator 异步处理消息的内部队列的大小。如果未通过构造函数提供,则默认值设置为 10000。

我想知道这里是否应该使用什么值,10000 是否是 "good enough" 以及如果达到队列容量最大值会发生什么,是否有任何指导方针。

执行SingleThreadedEventHandlingStrategy in 1.6.3 is a java.util.concurrent.LinkedBlockingQueue时使用的队列。

使用的构造函数在队列中 public LinkedBlockingQueue(int capacity) which creates a queue of fixed width. If the maximum capacity is reached and a SessionMessageEvent instance is put,放置事件的线程会阻塞,直到 space 在队列中变得可用(即,直到处理完队列中的事件)。

我敢猜测,对于 99.9% 使用 QuickFIX/J 的情况,10000 就足够了。