5. PRODUCER AND CONSUMER
Topic
Your Application
Producer
Your Application
Consumer
搜集資料 Push Poll 處理和發佈資料
Your Application
Producer
Your Application
Producer
Your Application
Consumer
Your Application
Consumer
5
A. 設定起始節點
B. 將資料送出
1. 設定起始節點
2. 訂閱topic
3. 開始讀資料
7. PARTITION REPLICAS
broker_0
Disk A
broker_1 broker_2
Disk B Disk C Disk D Disk E Disk F
Topic A partition 0
Topic B partition 0
Topic C
partition 0
leader
partition 1
partition 1
partition 1
partition 2
partition 2 partition 3
partition 3
partition 4
partition 4
partition 0
follower
7
⼀個Topic
=
多個partitions
副本可確保資料可⽤性
Partition越多越分散
9. GROUP_0
CONSUMER AND AVAILABILITY
Topic A
由1台電腦和2顆硬碟來服務
Your Application
Consumer
Your Application
Consumer
Your Application
Consumer
Consumer Partition Assignment
Your Application
Consumer
dead consumer
….
Partition 0 Partition 1 Partition 2
9
⾃動分配給其他活著的consumer
10. THROTTLE
broker_0
Disk A
broker_1
Disk B Disk C
Topic
partition 0
leader
partition 1
leader
partition 0
follower
partition 1
follower
限速5000
leader.replication.throttled.rate=5000 follower.replication.throttled.rate=4000
leader.replication.throttled.replicas=0:0
(partition:broker-id)
Server-Level
此節點的leaders同步副本的吞吐量上限
Server-Level
此節點的followers同步副本的吞吐量上限
Topic-Level
哪些leaders要被限速
限速4000
不限速 不限速
partition 2
future
partition 2
follower.replication.throttled.replicas=0:1
(partition:broker-id)
Topic-Level
哪些followers要被限速
replica.alter.log.dirs.io.max.bytes.per.second=1000
Sever-Level
內部⽬錄移動的速度上限
限速1000
10
11. DATA TO EVENT STREAMING
撈取串流資料
+
定期批次處理
CSV 檔案
CSV檔案轉成
Spark streaming
背景執⾏緒進⾏第⼆次去重
第三次去重
+
MERGE INTO
雲端Spark
第⼀次去重
+
轉成Kafka資料
Data Lake
Kafka streaming
地端Kafka
Kafka streami
推播給下⼀個單位
11
13. ① 選擇適當的成本
② 給定成本的權重
1. 寫入端的⾃動化負載平衡
① 選擇適當的成本
② 給定成本的權重
2. 伺服器端的⾃動化負載平衡
① 選擇適當的成本
② 給定成本的權重
3. 讀取端的⾃動化負載平衡
https://github.com/skiptests/astraea
吞吐量
延遲
連線數量
leader數量
Partitions數量
資料量
多樣化的成本選擇
⼀致的使⽤⽅式
很⼀致所以說三次!!!
13
14. 萬物皆有數字
1. 給定⼀個叢集描述
broker_0
Disk A
broker_1
Disk B Disk C
Topic A partition 0
Topic B partition 0 partition 1
partition 1
cost function {}
partition 2
2. 輸出叢集各項分數
( 這個叢集本⾝也是⼀個數字 )
broker_0
Disk A
broker_1
Disk B Disk C
Topic A partition 0
Topic B partition 0 partition 1
partition 1
partition 2
50 70
20
20
40
50 60
30 30 20
叢集資訊
伺服器效能指標
寫入端效能指標
讀取端效能指標
14