我如何通过 2 个 IP 和端口接受 quickfix 接受器会话?
how can i accept quickfix acceptor sessions over 2 IPs and ports?
这用于内部和外部 DNS 设置。所以我的配置文件说:
connectionType=acceptor
SenderCompID=provider
TargetCompID=client1
SocketAcceptAddress=X.X.X.X
SocketAcceptPort=1901
然后
connectionType=acceptor
SenderCompID=provider
TargetCompID=client2
SocketAcceptAddress=url.mapping.to.X.X.X.X
SocketAcceptPort=1902
并且接受者不会 运行 错误:
quickfix.RuntimeError: java.net.BindException: Cannot assign requested address: bind
SenderCompID=provider,
TargetCompID=client1
两者是一样的。如果我没记错的话,Quicfix 通过 BeginString、SenderCompID、TargetCompID 识别一个唯一的会话。因此,如果 2 个会话的这些相同,您将收到错误消息。所以其中一个必须与另一个不同。
第二个问题是你为什么要这样做?这是为了故障转移吗?
答案是为所有客户端使用内部套接字地址,然后让 LAN 客户端使用内部 DNS "machine1",让外部客户端使用外部 DNS "remote.machine1.com"
因此配置如下所示:
connectionType=acceptor
SenderCompID=provider
TargetCompID=client1
SocketAcceptAddress=192.168.20.25
SocketAcceptPort=1901
connectionType=acceptor
SenderCompID=provider
TargetCompID=client2
SocketAcceptAddress=192.168.20.25
SocketAcceptPort=1901
每个客户端都在同一个端口上...
这用于内部和外部 DNS 设置。所以我的配置文件说:
connectionType=acceptor
SenderCompID=provider
TargetCompID=client1
SocketAcceptAddress=X.X.X.X
SocketAcceptPort=1901
然后
connectionType=acceptor
SenderCompID=provider
TargetCompID=client2
SocketAcceptAddress=url.mapping.to.X.X.X.X
SocketAcceptPort=1902
并且接受者不会 运行 错误:
quickfix.RuntimeError: java.net.BindException: Cannot assign requested address: bind
SenderCompID=provider, TargetCompID=client1
两者是一样的。如果我没记错的话,Quicfix 通过 BeginString、SenderCompID、TargetCompID 识别一个唯一的会话。因此,如果 2 个会话的这些相同,您将收到错误消息。所以其中一个必须与另一个不同。
第二个问题是你为什么要这样做?这是为了故障转移吗?
答案是为所有客户端使用内部套接字地址,然后让 LAN 客户端使用内部 DNS "machine1",让外部客户端使用外部 DNS "remote.machine1.com"
因此配置如下所示:
connectionType=acceptor
SenderCompID=provider
TargetCompID=client1
SocketAcceptAddress=192.168.20.25
SocketAcceptPort=1901
connectionType=acceptor
SenderCompID=provider
TargetCompID=client2
SocketAcceptAddress=192.168.20.25
SocketAcceptPort=1901
每个客户端都在同一个端口上...