COSCUP 2022

Your locale preferences have been saved. We like to think that we have excellent support for English in pretalx, but if you encounter issues or errors, please contact us!

Kafka Partitioner 平衡框架
2022-07-30 , TR409-2
Language: 漢語

摘要

Apache Kafka 是一個分散式事件串流平台(distributed event-streaming platform),提供訊息的發佈與訂閱。目前有許多知名應用使用,如:LinkedIn, Line, ...等。
而分散式系統會遇到的負載平衡問題,雖然Kafka 在概念上(partition) 有為平衡作考慮,但也是會發生負載平衡問題。為了解決這個問題,我們從客戶端(client) 下手,設計一個訊息分配框架,讓使用者根據自己在意的"效能指標",決定訊息分配的策略。

本研究特別感謝『科學園區計畫-自主高效串流資料管理平台與新興應用』的支持。


說明

Kafka producer 在發送資料時,可以選擇要把資料送到哪個partition,也因此可以從這下手,調整叢集機器間的吞吐。
不同情境會有不同的解決方法,我們設計出一個框架,讓管理員可以藉由參數調整,改變producer 的發送策略,以符合不同的情境。框架的好處在於

  1. 彈性面對各式情境:
    情境有千千百百種,要一一條列解決是不可行的,因此,我們就需要框架來重複利用程式碼,藉由修改參數,滿足多種不同情境。
  2. no-code 重新組態partitioner:
    在no-code 下重新組態partitioner,讓管理員無須完全瞭解底層架構,也能調整partitioner 應對方針。
  3. 方便自定義:
    在未來,若出現新的情境,或許是需要"自定義的數據",只要在程式碼中實作2~3個介面方法,便將程式插入我們的框架,方便自定義。

Difficulty

中階

Target Audience

開發者、有分散式系統概念者

youtube_link

https://www.youtube.com/watch?v=srIHOnCMHbQ