# 守护进程容错
Storm 有几个不同的守护进程. 调度 workers 的 Nimbus, 启动和杀死 workers 的 supervisors, 可以访问日志的 log viewer(日志查看器)以及显示集群状态 UI.
## 当一个 worker 挂掉时会发生什么?
当一个 worker 挂掉时, supervisor 将会重启它. 如果在启动它时继续发生故障并且没有发送 hearbeat(心跳)给 Nimbus, 那么 Nimbus 将会重新调度 worker.
## 当一个 node(节点)挂掉时会发生什么?
分配给该机器的 task(任务)将超时, Nimbus 将这些 task(任务)重新分配给其他机器.
## 当 Nimbus 或 Supervisor 挂掉时会发生什么?
Nimbus 和 Supervisor 守护进程是为 fail-fast(快速失败)(遇到任何意外情况时进程自毁)和无状态(所有状态都保存在 Zookeeper 或磁盘上)而设计的. 像 [部署 Storm 集群](Setting-up-a-Storm-cluster.html) 中描述的一样, Nimbus 和 Supervisor 守护进程必须使用 daemontools 或 monit 工具进行监督. 所以如果 Nimbus 或 Supervisor 守护进程挂掉后, 它们会像什么都没发生一样重启.
最值得注意的是, 没有 worker 进程受到 Nimbus 或 Supervisors 挂掉的影响. 这与 Hadoop 相反, 如果 JobTracker 挂掉, 所有正在运行的 job 作业都将丢失.
## Nimbus 是单点故障的吗?
如果你失去了 Nimbus 节点, workers 仍然会继续工作. 此外,supervisors 如果挂掉, 将继续重新启动 workers. 但是,如果没有 Nimbus,worker 在必要时不会重新分配给其他机器(如失去 worker 机器).
Storm Nimbus 自 1.0.0 以来是 highly available(高可用的). 更多信息请参阅 [Nimbus HA 高可用设计](nimbus-ha-design.html) 文档.
## Storm 是如何保证数据处理的?
Storm 提供了保证数据处理的机制, 即使节点挂掉或 messages(消息)丢失. 更多细节请参阅 [保证消息处理](Guaranteeing-message-processing.html).
- Storm 基础
- 概念
- Scheduler(调度器)
- Configuration
- Guaranteeing Message Processing
- 守护进程容错
- 命令行客户端
- Storm UI REST API
- 理解 Storm Topology 的 Parallelism(并行度)
- FAQ
- Layers on Top of Storm
- Storm Trident
- Trident 教程
- Trident API 综述
- Trident State
- Trident Spouts
- Trident RAS API
- Storm SQL
- Storm SQL 集成
- Storm SQL 示例
- Storm SQL 语言参考
- Storm SQL 内部实现
- Flux
- Storm 安装和部署
- 设置Storm集群
- 本地模式
- 疑难解答
- 在生产集群上运行 Topology
- Maven
- 安全地运行 Apache Storm
- CGroup Enforcement
- Pacemaker
- 资源感知调度器 (Resource Aware Scheduler)
- 用于分析 Storm 的各种内部行为的 Metrics
- Windows 用户指南
- Storm 中级
- 序列化
- 常见 Topology 模式
- Clojure DSL
- 使用没有jvm的语言编辑storm
- Distributed RPC
- Transactional Topologies
- Hooks
- Storm Metrics
- Storm 状态管理
- Windowing Support in Core Storm
- Joining Streams in Storm Core
- Storm Distributed Cache API
- Storm 调试
- 动态日志级别设置
- Storm Logs
- 动态员工分析
- 拓扑事件检查器
- Storm 与外部系统, 以及其它库的集成
- Storm Kafka Integration
- Storm Kafka 集成(0.10.x+)
- Storm HBase Integration
- Storm HDFS Integration
- Storm Hive 集成
- Storm Solr 集成
- Storm Cassandra 集成
- Storm JDBC 集成
- Storm JMS 集成
- Storm Redis 集成
- Azue Event Hubs 集成
- Storm Elasticsearch 集成
- Storm MQTT(Message Queuing Telemetry Transport, 消息队列遥测传输) 集成
- Storm MongoDB 集成
- Storm OpenTSDB 集成
- Storm Kinesis 集成
- Storm Druid 集成
- Storm and Kestrel
- Container, Resource Management System Integration
- Storm 高级
- 针对 Storm 定义一个不是 JVM 的 DSL
- 多语言协议
- Storm 内部实现
- 翻译进度