-
Notifications
You must be signed in to change notification settings - Fork 6
/
学习路线.txt
154 lines (123 loc) · 3.87 KB
/
学习路线.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
1.生产者
KafkaProducer
集群元信息
Metadata
Cluster
Node
TopicPartition
PartitionInfo
ProducerInterceptors
Partitioner
DefaultPartitioner
RecordAccumulator
ProducerBatch
MemoryRecordsBuilder
MemoryRecords
ProduceRequestResult
BufferPool
Sender
NetworkClient
InFlightRequest
MetadataUpdater
Selector
KafkaChannel
2.消费者
KafkaConsumer
ConsumerNetworkClient
SubscriptionState
SubscriptionType
TopicPartitionState
ConsumerCoordinator
AbstractCoordinator
Heartbeat
PartitionAssignor
AbstractPartitionAssignor
RangeAssignor
RoundRobinAssignor
Fetcher
3.服务端
KafkaServer(startup)
KafkaApis
SocketServer
Acceptor
Processor
RequestChannel
KafkaRequestHandler
LogManager
Log
LogSegment
需要仔细再看
Records
AbstractRecords
FileRecords
MemoryRecords
OffsetIndex:
AbstractIndex
难点:translateOffset方法 进行地址转换
LogManager
LogCleaner
LogCleanerManager
CleanerThread
ShutdownableThread
延迟组件
KafkaAPis
ReplicaManager
DelayedOperationPurgatory
DelayedOperation
DelayedProduce
SystemTimer
TimingWheel
ReplicaManager(依赖以上几个组件)
Partition分区
Replica副本
PartitionState
ReplicaFetcherManager消息同步
AbstractFetcherManager
MetadataCache
KafkaController:用来管理集群相关信息,broker,topic,分区,副本等。
用来和其他broker通信
ControllerChannelManager
ControllerBrokerRequestBatch
ControllerContext
管理分区状态
PartitionStateMachine
PartitionLeaderSelector
注册不同的Listener实现相关变化的管理
ZK
IZkDataListener
IZkChildListener
TopicChangeListener
TopicDeletionListener
BrokerChangeListener
IZkStateListener
SessionExpirationListener
GroupCoordinator
MemberMetadata
GroupMetadataManager
DelayedHeartbeat
SyncGroupRequest
LeaveGroupRequest
PlainLoginModule sasl/plain方式实现了身份认证
kafka监控,内部使用了Yammer Metrics进行监控,通过JMX方式对外提供监控数据
java自带
Metrics
Gauge:最简单度量,记录瞬值
Counter:可修改的数字,记录次数
Meter:用来衡量某段时间平均请求
Histogram:用来度量最大值,最小值,平均值,方差等
Timer:用来统计某一代码块执行时间
ReplicaManager
使用Meter度量,统计全部分区的isr集合发生扩张/缩小的频率
RequestChannel
使用Histogram统计各类请求和响应在RequestChannel中等待时间的分布
使用Timer统计Broke发生增减时候,leader副本选举时长及其分布
Measurable
Total
Rate
Stat
CompoundStat
SampledStat
Count
Sample
KafkaMetricsGroup
Kafka Metrics 统一负责管理Sensor对象,kafkaMetric对象以及MetricsReporter对象