diff --git a/notes/Storm核心概念详解.md b/notes/Storm核心概念详解.md
index d6df8d3..80e478f 100644
--- a/notes/Storm核心概念详解.md
+++ b/notes/Storm核心概念详解.md
@@ -18,167 +18,40 @@
## 一、Storm核心概念
-下图为Storm为运行流程图:
-
### 1.1 Topologies(拓扑)
-Storm应用程序的逻辑被封装在 Storm topology(拓扑)中,一个拓扑是 Spout 和 Bolt 通过 stream groupings 连接起来的有向无环图,Storm会一直保持Topologies运行,直到你将其杀死(kill)为止。
+一个完整的Storm流处理程序被称为Storm topology(拓扑)。它是一个是由`Spouts` 和`Bolts`通过`stream`连接起来的有向无环图,Storm会保持每个提交到集群的topology持续地运行,从而处理源源不断的数据流,直到你将主动其杀死(kill)为止。
### 1.2 Streams(流)
-stream 是 Storm 中的核心概念,一个 stream 是一个无界的、以分布式方式并行创建和处理的 Tuple 序列。
-
-默认情况下 Tuple 可以包含 integers, longs, shorts, bytes, strings, doubles, floats, booleans, and byte arrays 等数据类型,当然你也可以实现自己的自定义类型。
+`stream`是Storm中的核心概念。一个`stream`是一个无界的、以分布式方式并行创建和处理的`Tuple`序列。Tuple可以包含大多数基本类型以及自定义类型的数据。简单来说,Tuple就是流数据的实际载体,而stream就是一系列Tuple。
### 1.3 Spouts
-Spout 是一个 topology(拓扑)中 stream的源头, 通常 Spout 会从外部数据源读取 Tuple。
-
-Spout分为 **可靠** 和**不可靠**两种,可靠的 Spout 在 Storm 处理失败的时候能够重新发送 Tuple, 不可靠的 Spout一旦把Tuple 发送出去就不管了。
-
-Spout 可以向不止一个流中发送数据,可以使用`OutputFieldsDeclare` 的 declareStream 方法定义多个流,并在 `SpoutOutputCollector`对象的 emit 方法中指定要发送到的stream 。
-
-```java
-public class SpoutOutputCollector implements ISpoutOutputCollector {
- ISpoutOutputCollector _delegate;
-
- ...
-
- public List emit(String streamId, List