COSCUP 2022

ロケール設定が保存されました。pretalxでは英語のサポートが充実していると思っていますが、問題やエラーが発生した場合は、ぜひご連絡ください。

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

摘要

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