quickfix - 是否有使用 QUICKFIX 库的客户端-客户端通信的开箱即用解决方案?
问题描述
我正在尝试使用 quickfix/J 构建一个完全包含的交易模拟器。该系统应该由 2 个客户端应用程序(一个市场/交易所和一个经纪人)以及一个路由器(服务器/接受者)组成。我特别想知道:
客户-客户沟通
两个客户端如何相互通信,但服务器处理所有消息传递逻辑,即。消息应该通过服务器,它应该决定在哪里以及如何转发消息。我应该能够在 FIX 消息中传递 targetID,并且服务器应用程序应该处理到所需客户端的路由。
同一个端口上的多个客户端有多个客户端连接在同一个端口上,但消息应该只发送到特定的发件人comp Id,即。客户端不应与其他客户端进行通信。
我已经设置了接受器和 2 个客户端。我知道我可以使用普通的旧 Java 以编程方式执行此操作,但我想利用 quickfix 库并想要一个相对开箱即用的解决方案。
MVP:客户端(broker)通过acceptor(router)发送fix消息,消息被处理并转发到特定的market,market通过server接收消息并做一些业务逻辑,market通过acceptor将fix消息发送回client。
ps:我喜欢 quickfix 库,但如果您推荐任何其他库/语言,我会非常灵活
解决方案
简短回答:QuickFIX/J(据我所知,QuickFIX 或 quickfix/n 类似)不会基于标签路由消息。这必须在您的应用程序代码中实现。
编辑:关于你的第二点。让您的 FIX 服务器在同一端口上侦听多个 FIX 连接没有问题(这适用于 QuickFIX/J,我猜也适用于其他语言变体。)会话是通过 解决的,SessionID
因此可以确保只有正确的 FIX 会话得到它的消息。
推荐阅读
- go - 如何将标签添加到prometheus格式中?
- python - Dask - 如何从存储在 Zarr 中的一维数组子组创建二维数组
- r - 如何在 R 特例非洲中将 UTM 坐标转换为纬度和经度
- python - 使用远程 tcp 连接连接 dbus
- ios - 如何让CAEmitterCell淡入淡出?
- php - 如何在 base_url 或 site_url 中获取 id?
- javascript - 如何在使用分页 API 的离线优先应用程序中前端分页?
- c# - Confluent-kafka-dotnet - 在互联网连接丢失几秒钟后,消费者在提交偏移量时挂起
- c# - 如何循环一个
- >> Json.net 使用 EPPUS 转换 excel 文件
- python - 如何在 django 管理站点上为扩展用户模型设置默认值?