抛出AvroRuntimeException之后,风暴拓扑工作器死亡

时间:2018-12-05 15:34:21

标签: apache-kafka apache-storm

我有一种情况,拓扑的第一部分是基于Avro模式对来自Kafka主题的消息进行反序列化,对于遵循正确模式的消息,反序列化工作正常,并且当消息只是其他任何东西时,抛出AvroRuntimeException无法反序列化,尽管我正在捕获异常并确认了元组,但是却遇到了工伤死亡错误,这与风暴配置有关吗?

@Override
public void execute(Tuple input) {
    byte[] bytes = null;
    try {
        bytes = getBinaryFieldFromTuple(input);
        if (ArrayUtils.isEmpty(bytes)) {
            log.error("Received empty byte[] - skipping.");
            return;
        }
        Message<E> message = getMessageDecoder().decode(bytes);
        E payload = message.getPayload();
        emit(input, getValuesToEmit(payload, message.getHeaders()));
    } catch (Exception ex) {
        log.error("Error while deserializing: {}", bytes, ex);
    } finally {
        ack(input);
    }
}

我看不到具体原因。

0 个答案:

没有答案