apache-kafka - Storm 拓扑工作者在抛出 AvroRuntimeException 后死亡
问题描述
我有一个场景,我的第一个拓扑螺栓是基于 Avro 模式反序列化来自 Kafka 主题的消息,反序列化对于遵循正确模式的消息工作正常,并且当消息只是其他任何不能时抛出 AvroRuntimeException被反序列化,虽然我捕捉到异常并确认元组,但我得到了 worker dead 错误,这与风暴配置有关吗?
@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);
}
}
我看不出具体的原因。
解决方案
推荐阅读
- javascript - Typeorm 查找方法返回错误的时间戳时间
- css - 为什么位置:相对会导致先前浮动的兄弟姐妹被隐藏
- firebase - 尝试将数据写入云 Firestore 时出现“意外的空值”错误
- javascript - VueJs + BootstrapVue:表格删除项目仅在第一页
- compilation - Preg_match():缺少右括号
- javascript - JavaScript - window.open 不能在 Firefox 移动 iOS 上运行?
- javascript - 如何在 Javascript 中通过 FormData 发布带有图像的多个对象?
- amazon-web-services - AWS 许可证管理器 - 如何禁用已授予的许可证
- ruby-on-rails - 安装 Rails 时遇到问题
- reactjs - 如何在使用 reactQuill 组件时自定义 'image' 标签的宽高和样式?