Storm 累加拓扑示例

创建Spout发送递增数字数列

创建Bolt负责计算累加结果

本地运行

本地运行完整代码

保证数据可靠处理

  1. Spout在使用nextTuple()方法发送数据时需要传入消息ID

  1. Bolt中execute()方法中标记tuple是否处理成功
  • 处理成功 collector.ack(input)

  • 处理失败collector.fail(input)

    注意: ackfail方法需要锚定到发射过来的tuple上.

  1. Spout中对处理失败的元组触发回调

    这里把处理失败的数字重新发射出去

远程运行模式

如果是需要提交到集群, 需要使用StormSubmitter替换new LocalCluster()来调用submitTopology(..)方法

然后打成jar包上传到集群运行

Views: 206

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注