-
Notifications
You must be signed in to change notification settings - Fork 132
Description
Working on implementing artio into a project in a multi-host setup with the FIX Engine (running as a gateway) on one machine and the FIX Library (with app-specific logic) on another. This Wiki page explains that this should be possible using a UDP Aeron channel, and given artio's architecture using Aeron (with the option to use IPC or UDP) it makes sense to be configurable in a Single- or Multi- Host setup.
However, in practice I am having difficulty setting this up. In one Docker container I have configured a basic program running an ArchivingMediaDriver along with a FixEngine. In another container I have configured a MediaDriver and a FixLibrary that is polling. I have tried configuring the EngineConfiguration.libraryAeronChannel and the LibraryConfiguration.libraryAeronChannels in every unicast configuration using the two hostnames of the containers (see below for details) to no avail.
Looking through the source code, it looks like the FixEngine and the FixLibrary were designed to run on the same machine as each component Subscribes and Publishes to this Aeron channel. Perhaps I am misconfiguring or misunderstanding, some direction or perhaps even samples would be much appreciated.
tldr;
Aeron channel configs tried:
EngineConfiguration.libraryAeronChannel |
LibraryConfiguration.libraryAeronChannels |
Issue |
|---|---|---|
aeron:udp?endpoint=<engine_host>:<port> |
[ aeron:udp?endpoint=<engine_host>:<port> ] |
|
aeron:udp?endpoint=<engine_host>:<port> |
[ aeron:udp?endpoint=<library_host>:<port> ] |
|
aeron:udp?endpoint=<library_host>:<port> |
[ aeron:udp?endpoint=<engine_host>:<port> ] |
|
aeron:udp?endpoint=<library_host>:<port> |
[ aeron:udp?endpoint=<library_host>:<port> ] |
|
(I am aware that setting different Aeron channels would not even make sense, however I have tested and listed them to be as thorough as possible.)