Storm(install + 送达保证)

http://storm.apache.org/

wget https://github.com/downloads/nathanmarz/storm/storm-0.8.1.zip
cd /home/storm/opt
unzip storm-0.8.1.zip
cd /home/storm/opt/storm-0.8.1/conf/
vi storm.yaml

启动:
bin/storm nimbus >/dev/null 2>&1 &
bin/storm supervisor >/dev/null 2>&1 &
bin/storm ui >/dev/null 2>&1 &

storm集群信息你可以登录storm ui查看
http://xxx:6765/index.html

我们的storm集群由三个节点组成:host1,host2,host3
1.fieldsGrouping field值相同的属性会在一个bolt中执行,其它会随机分配bolt执行
这样主节点只需要对结果做统计就可以了,如果不这么做,就还需要再做一次统计,增加了节点工作量
2.并发执行,共享变量:属性用private transient AtomicLong count ;一般这种情况比较少
3.spout,bolt之间传值tuple:array 先序列化成json串数组,取的时候先反序列化
4.prepare方法启动的时候在一个JVM里只会执行一次,可以把spring,以及数据库连接的一些方法在这里执行
5.不用uuid,用一个有意义的id,这样如果记录重复处理,就可以判断是否重复
6.IBasicBolt比IRichBolt多了realiability功能

route add x/16 x
route add y/16 y

Storm的送达保证机制-----恰好送达一次
1.送达保证机制 至少送达一次
2.事物拓补 保证不会出现多次送达,以及状态持久化

很抱歉,我之前可能理解错了你的问题。如果你指的是"Storm"分布式实时计算系统,它是一种开源的大数据处理框架,由Apache开发并维护。在Storm中,没有严格的消息送达保证,因为它是一种实时流处理系统,注重数据的低延迟处理。 在Storm中,消息通过"拓扑"(Topology)进行处理。拓扑由多个节点(Spout和Bolt)组成,消息从Spout进入拓扑,经过一系列Bolt的处理,最终产生结果。在这个过程中,Storm提供了一些机制来尽量保证消息的可靠处理,但并不保证100%的送达保证Storm提供了以下机制来确保消息的可靠处理: 1. Tuple树:Storm将消息组织成Tuple树的形式,当消息被处理时,Storm会跟踪每个Tuple的状态,并在需要时重新发送未成功处理的Tuple。 2. 可靠性设置:在拓扑的配置中,可以设置Spout和Bolt的可靠性级别。通过设置ack和fail机制,可以确保消息在失败时被重新发送,并且只有在成功处理后才会被确认。 3. 容错性:Storm具有容错机制,当节点出现故障时,它可以自动地重新分配任务到其他可用节点上,确保消息的处理不受影响。 尽管Storm提供了这些机制来尽量保证消息的可靠处理,但它并不能保证消息的绝对送达。在一些极端情况下,如节点故障、网络中断等,仍然可能导致消息的丢失或延迟。因此,在设计应用程序时,需要考虑这些潜在的风险并采取适当的措施来处理。 希望这个回答能够解决你的问题。如果你有任何其他疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值