《Storm企业级应用:实战、运维和调优》——3.9 事务

简介:

本节书摘来自华章计算机《Storm企业级应用:实战、运维和调优》一书中的第3章,第3.9节,作者:马延辉 陈书美 雷葆华著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.9 事务

这里的事务是专门针对Topology提出来的,是为了解决元组在处理失败重新发送后的一系列问题的。简而言之,事务拓扑(transactional topology)就是指Storm以并行和顺序处理混合的方式处理元组,一方面是处理消息,将消息分为一批批,并行处理同一批内的消息以及批与批之间的消息;另一方面是提交消息,按严格的顺序提交,总之实现对消息精确的处理。
(1)事务拓扑的特点
事务性拓扑这一特性使消息在语义上确保能够以安全的方式重发消息,并保证它们只被处理一次。在不支持事务性拓扑的情况下,无法在保证准确性、可扩展性、容错性的前提下完成计算。
(2)事务拓扑的目的
事务拓扑的目的是满足对消息处理有着极其严格要求的场景,如实时计算某个用户的页面点击次数,要求结果完全精确。
(3)事务拓扑的原理
事务拓扑是Storm 0.7引入的特性,0.8之后版本已经被封装为Trident,提供了更加方便和直观的接口。
Storm的事务拓扑是完全基于底层的Spout/Bolt/Acker原语实现的,通过一层巧妙的封装得出一个优雅的实现,这也是Storm最大的魅力之一。
Storm使用ZooKeeper储存事务元数据,默认就是拓扑使用的ZooKeeper。可以通过修改transactional.zookeeper.servers和transactional.zookeeper.port配置参数键指定其他的ZooKeeper。
在使用事务性拓扑时,数据源要能够重发,有时候甚至要重复多次,因此需要确认数据源Spout是否具备这项能力。

相关文章
|
运维 Oracle 关系型数据库
Oracle运维笔记之事务回滚处理
Oracle运维笔记之事务回滚处理
1631 0
|
2月前
|
人工智能 运维 监控
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
165 17
|
7月前
|
数据采集 机器学习/深度学习 人工智能
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
889 0
|
4月前
|
人工智能 运维 安全
运维老哥的救星?AI 驱动的自动化配置管理新趋势
运维老哥的救星?AI 驱动的自动化配置管理新趋势
305 11
|
6月前
|
机器学习/深度学习 人工智能 运维
运维不背锅,从“自动修锅”开始:AI自动化运维是怎么回事?
运维不背锅,从“自动修锅”开始:AI自动化运维是怎么回事?
417 49
|
5月前
|
运维 Prometheus 监控
系统崩了怪运维?别闹了,你该问问有没有自动化!
系统崩了怪运维?别闹了,你该问问有没有自动化!
194 9