Skip to content

Commit 433a8c8

Browse files
mouuiigitbook-bot
authored andcommitted
GITBOOK-113: No subject
1 parent d816ffa commit 433a8c8

File tree

1 file changed

+8
-8
lines changed
  • k8s-yuan-ma-ren-cai-fu-hua-xun-lian-ying/di-wu-zhang-apimachinery

1 file changed

+8
-8
lines changed

k8s-yuan-ma-ren-cai-fu-hua-xun-lian-ying/di-wu-zhang-apimachinery/5.8-event.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Event事件管理机制主要有三部分组成:
2828

2929
## 源码分析
3030

31-
### Event资源数据结构
31+
### 1.Event资源数据结构
3232

3333
```go
3434
// pkg/apis/core/types.go
@@ -118,9 +118,9 @@ type Event struct {
118118

119119
```
120120

121-
###  EventBroadcaster源码分析
121+
###  2.EventBroadcaster源码分析
122122

123-
#### 4.1 EventRecorder记录事件(事件生产者)
123+
#### 2.1 EventRecorder记录事件(事件生产者)
124124

125125
* EventRecorder
126126

@@ -273,7 +273,7 @@ func (recorder *recorderImpl) makeEvent(ref *v1.ObjectReference, annotations map
273273

274274
generateEvent方法调用ActionOrDrop方法,将事件写入到incoming中:
275275

276-
#### 4.2 EventBroadcaster事件广播(事件消费者)
276+
#### 2.2 EventBroadcaster事件广播(事件消费者)
277277

278278
* EventBroadcaster
279279

@@ -479,7 +479,7 @@ func (m *Broadcaster) closeAll() {
479479

480480
关闭了incoming,从loop方法可以看出来,将会结束对incoming的遍历动作,关闭所有watcher的result通道,清空watcher。
481481

482-
#### 4.3 broadcasterWatcher事件的处理
482+
#### 2.3 broadcasterWatcher事件的处理
483483

484484
\
485485
eventBroadcasterImpl实现的三种Event的处理方法:
@@ -636,7 +636,7 @@ func (mw *broadcasterWatcher) ResultChan() <-chan Event {
636636
}
637637
```
638638

639-
#### 4.4 事件处理逻辑
639+
#### 2.4 事件处理逻辑
640640

641641
对于StartLogging、StartStructuredLogging方式,都是把事件信息当做日志打印了一下。这里主要看一下StartRecordingToSink方法,StartRecordingToSink封装的StartEventWatcher方法里面会处理事件消费者分发的事件,并回调recordToSink方法,对收到 events 后会进行缓存、过滤、聚合而后发送到 apiserver,apiserver 会将 events 保存到 etcd 中。下面着重分析下recordToSink方法。
642642

@@ -809,7 +809,7 @@ func (e *eventLogger) eventObserve(newEvent *v1.Event, key string) (*v1.Event, [
809809

810810
eventObserve方法里面会去查找缓存中的记录,然后对count进行自增后更新到缓存中。
811811

812-
### 5、使用示例
812+
### 2.使用示例
813813

814814
```go
815815
const (
@@ -833,7 +833,7 @@ c.recorder.Event(user, corev1.EventTypeNormal, successSynced, messageResourceSyn
833833

834834
StartRecordingToSink会调用StartEventWatcher,StartEventWatcher方法里面会异步的调用 watcher.ResultChan()方法获取到broadcasterWatcher的result管道,result管道里面的数据就是Broadcaster的distribute方法进行分发的。
835835

836-
### 6、总结
836+
### 4.总结
837837

838838
&#x20; 了解完 events 的整个处理流程后,再梳理一下整个流程:
839839

0 commit comments

Comments
 (0)