gpt4 book ai didi

zeromq - 右 ZeroMQ 拓扑

转载 作者:行者123 更新时间:2023-12-01 11:51:23 28 4
gpt4 key购买 nike

我需要编写一个订单管理器,将客户(股票、外汇等)订单发送到适当的交易所。客户想要发送订单,但对 FIX 或其他专有协议(protocol)一无所知,只知道发送订单的内部(规范化)格式。我有应用程序(服务器),每个应用程序(服务器)都通过 FIX/Binary/etc 连接连接到每个 FIX/etc 提供商。我想要一个在客户端和服务器之间的代理程序,它采用规范化的顺序并将其转换为给定的 FIX/etc 提供程序的正确格式,并从服务器获取消息并将其转换回客户端的规范化格式.客户端指定路由是可以的,但要由客户端和服务器之间的代理程序在客户端和服务器之间来回传递有关该订单的消息。因此,服务器的输出 [填充、部分填充、错误等] 必须以某种方式路由回正确的客户端。

我研究了 ZMQ 拓扑,REQ->ROUTER->DEALER 不起作用 [代码有效 - 我的意思是它是错误的拓扑],因为服务器不相同。

//This topology doesn't work because the servers are not identical
#include "zhelpers.hpp"

int main (int argc, char *argv[])
{
// Prepare our context and sockets
zmq::context_t context(1);
zmq::socket_t frontend (context, ZMQ_ROUTER);
zmq::socket_t backend (context, ZMQ_DEALER); // ZMQ_ROUTER here? Can't get it to work

frontend.bind("tcp://*:5559");
backend.bind("tcp://*:5560");

// Start built-in device
zmq::device (ZMQ_QUEUE, frontend, backend);


return 0;
}

我认为也许 ROUTER->ROUTER 拓扑是正确的,但我无法让代码工作 - 客户端发送订单但从未收到回复,所以我一定是做错了什么。我认为使用 ZMQ_IDENTITY 是正确的做法,但我不仅不能让它工作,而且 ZMQ 似乎正在远离 ZMQ_IDENTITY?

有人可以给出一个简单的示例,其中包含三个 ZMQ 程序 [不是在单独的线程中,而是在三个单独的进程中] 来说明执行此操作的正确方法吗?

最佳答案

查看指南中的 MajorDomo 示例:http://zguide.zeromq.org/page:all#toc71

您将为每个交易所使用一个工作池。

关于zeromq - 右 ZeroMQ 拓扑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11179061/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com