从Apache Flink RabbitMQ源连接器访问消息属性

时间:2019-03-28 16:16:21

标签: rabbitmq apache-flink

我正在使用Apache Flinke 1.7.2 RabbitMQ连接器:https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/rabbitmq.html

我想访问与amqp消息正文一起发送的amqp消息属性中的message_id。我希望能够按该邮件ID进行分组。问题在于,我仅在构建消息后才从源中获取消息的正文。

有没有一种简便的方法,不需要我从头开始重写源类?

1 个答案:

答案 0 :(得分:1)

我想这是不可能的。查看连接器的source-code,您会看到它们仅提取RMQ消息的正文:

@Override
public void run(SourceContext<OUT> ctx) throws Exception {
    while (running) {
        QueueingConsumer.Delivery delivery = consumer.nextDelivery();
        synchronized (ctx.getCheckpointLock()) {
            OUT result = schema.deserialize(delivery.getBody());
            // ....
        ctx.collect(result);
        }
    }
}

我想您必须找到另一个连接器(第三方)或自己实现。对不起这个坏消息!