【问题标题】:ZeroMQ - Backwards Compatability between 4.x & 2.2 with LogStashZeroMQ - 4.x 和 2.2 与 LogStash 之间的向后兼容性
【发布时间】:2014-05-19 03:08:41
【问题描述】:

我有一个带有 ZeroMQ 输入插件的 logstash 服务器设置,用于从我编写的一个简单应用程序中收集数据。当我在具有相同 ZeroMQ 安装(Ubuntu,apt-get install libzmq1)的系统上运行应用程序时,它运行良好。

但是,在我们的实际系统中,我们使用 ZeroMQ 4.0.1,并且 logstash 报告数据负载为空。我已经添加了我能想到的尽可能多的调试,我开始认为这是一个简单的版本不兼容(尽管 ZeroMQ 说这应该可以工作)。我用来测试的应用程序很简单:

//  Prepare our context and socket
zmq::context_t context (1);
zmq::socket_t socket (context, ZMQ_PUB);

socket.connect ("tcp://logstash:2120");

for (int request_nbr = 0; request_nbr != 10; request_nbr++) {
    dataList["number"] = boost::lexical_cast<std::string>(request_nbr);

    std::string log = map2json(dataList);
    zmq::message_t request (log.size());
    memcpy ((void *) request.data (), log.c_str(), log.size());
    std::cout << "Sending msg " << request_nbr << "…" << std::endl;
    socket.send (request);
    sleep(1);
}

当应用程序再次链接 ZMQ2.2(来自 libzmq1)时,这非常有效,但是当我将应用程序链接到我的 ZeroMQ 4.0.1 安装(从源代码构建)时,logstash 失败并出现 json 解析错误(声明有效载荷为空)。

更新

我在 Logstash 服务器上从源代码安装了 ZeroMQ 3.2.4,现在它可以工作了。

【问题讨论】:

    标签: c zeromq


    【解决方案1】:

    Pubsub 过滤从 2.x 反转到 3.x,如果您尝试使用主题 subs,则不起作用。

    我发布了一个问题,请参阅以下主题中 Jordan 的回复。

    https://groups.google.com/forum/m/#!msg/logstash-users/Tx_J7eCFUNI/pS3qkTRCFDIJ

    【讨论】:

      【解决方案2】:

      我认为这是 ZeroMQ 2.2 的 LogStash 使用中的一个错误,或者至少是 2.2 和 4.0 之间的不兼容。

      我在服务器上安装了 ZeroMQ 3.2.4(从源代码构建),现在我的 4.x 客户端能够将日志发布到我的 Logstash 服务器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-05
        • 2011-08-28
        • 2011-04-07
        • 1970-01-01
        • 2018-05-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多