- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 storm处理其中一个 bolt 正在写入 cassandra 的流。 cassandra session.execute()
命令可能会抛出异常,我想知道如何将其捕获为“使”元组“失败”,以便重试。
IRichBolt 的文档没有 show它抛出任何东西,所以我想知道如何处理异常情况。
主要问题:我应该将 cassandra 调用包装在 try/catch 中,还是 storm 会为我处理这种情况?
最佳答案
多部分答案:
1) 一定要用 try-catch block 包围您的代码。
2) 如何处理故障取决于 Storm 拓扑和故障类型:
如果异常表明立即重试可能会成功,那么您可以循环一些小的、有限的次数,直到尝试成功或尝试次数用完。
如果您正在执行的元组是 spout 发出的元组,那么您的 bolt 可能会使该元组失败。这将强制 Storm 重试(也就是说将调用 spout 上的 fail() 方法,您可以编写重试代码)
如果处理此元组已经产生了至少一个副作用,并且您不希望由于重试该元组而重复该副作用,那么您需要更有创意一些。您的 Cassandra bolt 可以将失败的元组发送到失败的元组流中,它可以持久保存在某个地方(HBase、文件系统、Kafka),直到您准备好再次尝试。要重试,您可以将另一个 Spout 添加到您的拓扑中,该 Spout 从失败元组的存储中读取并将它们发送到流中返回到 Cassandra bolt 以进行重试。这为您提供了一种方法,可以在重试之间延长时间来连续循环重试。如果除了失败的元组之外,您还坚持/记录了 Cassandra 异常,您可以浏览/监控日志以查看是否有您的管理员应该知道的任何问题。
关于cassandra - storm - 处理 bolt.execute 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30485602/
平台:Mac OSX Maverics Web 服务器:内置 apache,支持 mod-rewrite,启用 php5_module 重现步骤: cd/Users/用户名/站点/ mkdir bol
如何在 Bolt 中列出分类法中的所有术语?不是应用于记录的术语而是所有现有术语(如标签云或类别列表侧边菜单)? 最佳答案 直接在模板中,可以这样做: {% for category in app.c
我有两个可序列化的类A和B。并且有两种spout A_spout和B_spout。每个spout向bolt C发出并行类。但是方法execute中的元组没有区别,所以我如何区分它们? 最佳答案 每个输
我有一个拓扑,例如由 1 个喷嘴和 4 个 bolt 组成 spout 1 -> bolt A -> bolt B -> bolt C -> bolt D 如果 bolt A 中的某些条件不满足,我们
我正在从 spout 中获取数据。每个 bolt 都会将映射字段插入到我数据库中的不同表中。但是我的数据库表有约束。在我的测试表中,我有两个名为 user-details 和 my-details 的
在我的 Storm 拓扑中,我将一个大的程序逻辑保存在单个 Bolt 中。现在我把大的程序逻辑分成线性排列的小 bolt 。它的性能有什么不同吗? 最佳答案 根据您评论中的描述: In my topo
我正在使用 Bolt.cm 并且在编辑页面或条目时,右侧有一个称为“堆栈”的部分。在 Bolt 网站上,它说 Our Stack functionality contains your latest
我正在使用 Apache Storm,我想知道是否可以像这样用另一个 bolt 组合一个 bolt : public class MyNewBolt extends BaseRichBolt {
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
将 BoltA 和 BoltB 的输出发送到 BoltC 的最简单方法是什么。我必须使用 Joins 还是有任何更简单的解决方案。 A 和 B 具有相同的字段(ts、metric_name、metri
注意: Bolt1 包含前三个质数(2,3,5)的列表。 Bolt2 包含后三组质数(7,11,13)的列表。 在 Bolt3 中,它只是检查数字是否为素数。 从第一个 bolt 开始,我可以从 sp
bolt 是否可以从不同的 spout/bolt 接收多个输入元组?例如,Bolt C 接收来自 Spout A 的输入元组和来自 Bolt B 的输入元组以进行处理。我应该如何实现它?我的意思是为
得到这个错误 framework not found Bolts for architecture x86_64 逐字逐句地遵循 Facebook 的指南,但我唯一能想到的链接错误发生在框架搜索路径的
我正在尝试整合 Amazon Web SDK适用于 iOS。我手动安装了它(不使用 CocoPods)并且在文档中它说如果你安装了 facebook SDK 不包括 Bolts.framework 因
我正在尝试使用 Facebook/Parse Bolts 框架在 Android 上并行运行多个任务。 documentation for running tasks in parallel似乎表明
Error:(39, 13) Failed to resolve: com.parse.bolts:bolts-android:1.+ 这是我的build.gradle dependencies {
我想创建一个内容类型,其中包含诸如“年月”和“产品类型”之类的选择字段,并根据这两个字段的值自动生成标题字段。 这是因为两个选择字段值的描述性足够,我想减少 CMS 的最终用户为使标题显示在管理界面中
操作系统:Windows 10 专业版 Node :6.1.0 NPM:3.8.6 Gulp:CLI 版本 3.9.1 因此,firebase-bolt 已使用 npm install -g fire
我是 phone gap 的新手。在我的项目中集成了 facebook 插件。运行后显示错误 `Error:A problem occurred configuring root project 'a
我正在尝试构建我的项目。由于此错误,构建失败。 Users/company/Desktop/app/DemoApp/Pods/Bolts/Bolts/iOS/BFAppLink.m:11:9:找不到“
我是一名优秀的程序员,十分优秀!