[Kafka] Kafka κ°œλ…κ³Ό μ»΄ν¬λ„ŒνŠΈ

2023. 2. 13. 01:05Β· #️⃣ Data Engineering/Kafka
λͺ©μ°¨
  1. πŸ’œ Kafka
  2. 1. Kafka
  3. 1.1 Kafka 탄생 λ°°κ²½
  4. 1.2 Kafka νŠΉμ§•
  5. 2. Kafka μ»΄ν¬λ„ŒνŠΈ
  6. 2.2 μΉ΄ν”„μΉ΄ λΈŒλ‘œμ»€Β·ν΄λŸ¬μŠ€ν„°Β·μ£Όν‚€νΌ
  7. (1) μΉ΄ν”„μΉ΄ 브둜컀 (Broker)
  8. (2) μΉ΄ν”„μΉ΄ ν΄λŸ¬μŠ€ν„° (Cluster)
  9. (3) 데이터 전솑과 μ €μž₯
  10. (4) 데이터 볡제, 싱크
  11. (5) 컨트둀러
  12. (6) 데이터 μ‚­μ œ
  13. (7) 컨슈머 μ˜€ν”„μ…‹ μ €μž₯
  14. (8) 코디넀이터
  15. (9) 주킀퍼 (Zookeeper)

πŸ’œ Kafka

μ±… 'μ•„νŒŒμΉ˜ μΉ΄ν”„μΉ΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ν”„λ‘œκ·Έλž˜λ° with μžλ°” - μ΅œμ›μ˜ μ§€μŒ'을 κ³΅λΆ€ν•˜λ©° μ •λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.


1. Kafka

1.1 Kafka 탄생 λ°°κ²½

λ‹Ήμ‹œ 상황

2011λ…„ λ‹Ήμ‹œ, 단방ν–₯ 톡신을 톡해 μ†ŒμŠ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 타깃 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ μ—°λ™ν•˜λŠ” μ†ŒμŠ€μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” μ‹μœΌλ‘œ 데이터 μˆ˜μ§‘ 및 λΆ„λ°° μ•„ν‚€ν…μ²˜λ₯Ό μš΄μ˜ν–ˆλ‹€.
μ΄λŸ¬ν•œ κ΅¬μ‘°λŠ” μ•„ν‚€ν…μ²˜κ°€ κ±°λŒ€ν•΄μ§€κ³ , μ†ŒμŠ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό 타깃 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ—°κ²°ν•˜λŠ” νŒŒμ΄ν”„λΌμΈ κ°œμˆ˜κ°€ λ§Žμ•„μ§€λ©΄μ„œ μ†ŒμŠ€λ²„μ „/버전 관리 μ΄μŠˆκ°€ κ·ΈλŒ€λ‘œ 전달 λ˜μ—ˆλ‹€.

탄생

λ§ν¬λ“œμΈ λ°μ΄ν„°νŒ€μ€ μ΄λŸ¬ν•œ μƒν™©μ—μ„œ μ‹ κ·œ μ‹œμŠ€ν…œμΈ Kafkaλ₯Ό λ§Œλ“€μ—ˆλ‹€. KafkaλŠ” ν•œ 곳에 λͺ¨μ•„ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ 쀑앙 μ§‘μ€‘ν™”ν•˜μ—¬ 데이터 μŠ€νŠΈλ¦Όμ„ ν•œ κ³³μ—μ„œ μ‹€μ‹œκ°„μœΌλ‘œ 관리할 수 있게 λ˜μ—ˆλ‹€.
kafkaλ₯΄ 쀑앙에 λ°°μΉ˜ν•¨μœΌλ‘œμ¨ μ†ŒμŠ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό 타깃 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ‚¬μ΄μ˜ μ˜μ‘΄λ„λ₯Ό μ΅œμ†Œν™”ν•˜μ—¬ μ»€ν”Œλ§μ„ μ™„ν™”ν•˜μ˜€λ‹€.

 

1.2 Kafka νŠΉμ§•

높은 μ²˜λ¦¬λŸ‰, ν™•μž₯μ„±, μ˜μ†μ„±, κ³ κ°€μš©μ„± νŠΉμ§•μ„ κ°€μ§„ μΉ΄ν”„μΉ΄λŠ” 데이터 νŒŒμ΄ν”„λΌμΈμ„ μ•ˆμ „ν•˜κ³  ν™•μž₯μ„± λ†’κ²Œ μš΄μ˜ν•  수 μžˆλ„λ‘ μ„€κ³„λ˜μ—ˆλ‹€.

  1. 높은 μ²˜λ¦¬λŸ‰
    • μΉ΄ν”„μΉ΄λŠ” ν”„λ‘œλ“€μ„œκ°€ 브둜컀둜 데이터λ₯Ό λ³΄λ‚Όλ•Œμ™€ μ»¨μŠˆλ¨Έκ°€ λΈŒλ‘œμ»€λ‘œλΆ€ν„° 데이터λ₯Ό 받을 λ•Œ λͺ¨λ‘ λ¬Άμ–΄μ„œ μ „μ†‘ν•œλ‹€. μ΄λŠ” λ„€νŠΈμ›Œν¬ 톡신 횟수λ₯Ό μ΅œμ†Œν•œμœΌλ‘œ 쀄이고, λ§Žμ€ μ–‘μ˜ 데이터λ₯Ό λ¬ΆμŒλ‹¨μœ„λ‘œ μ²˜λ¦¬ν•˜λŠ” λ°°μΉ˜λ„ λΉ λ₯΄κ²Œ μ²˜λ¦¬ν•  수 μžˆλ‹€.
    • νŒŒν‹°μ…˜ λ‹¨μœ„λ₯Ό 톡해 동일 λͺ©μ μ˜ 데이터λ₯Ό μ—¬λŸ¬ νŒŒν‹°μ…˜μ— λΆ„λ°°ν•˜κ³  데이터λ₯Ό 병렬 μ²˜λ¦¬ν•  수 μžˆλ‹€.
  2. ν™•μž₯μ„±
    • input λ°μ΄ν„°μ˜ 양을 μ˜ˆμΈ‘ν•˜κΈ° νž˜λ“  가변적인 ν™˜κ²½μ—μ„œ μ•ˆμ •μ μœΌλ‘œ ν™•μž₯ κ°€λŠ₯ν•˜λ‹€. 데이터가 λ§Žμ•„μ§€λ©΄ 브둜컀 개수λ₯Ό 늘렀 μŠ€μΌ€μΌ 아웃(scale-out)ν•˜κ³ , 데이터가 적어지면 브둜컀 개수λ₯Ό 쀄여 μŠ€μΌ€μΌ 인(scale-in)ν•  수 μžˆλ‹€.
  3. μ˜μ†μ„±
    • μΉ΄ν”„μΉ΄λŠ” λ‹€λ₯Έ λ©”μ‹œμ§• ν”Œλž«νΌκ³Ό λ‹€λ₯΄κ²Œ 전솑받은 데이터λ₯Ό λ©”λͺ¨λ¦¬κ°€ μ•„λ‹Œ 파일 μ‹œμŠ€ν…œμ— μ €μž₯ν•œλ‹€. μΉ΄ν”„μΉ΄λŠ” μš΄μ˜μ²΄μ œμ—μ„œ 파일 I/O μ„±λŠ₯ ν–₯상을 μœ„ν•΄ νŽ˜μ΄μ§€ μΊμ‹œμ˜μ—­μ„ λ©”λͺ¨λ¦¬μ— λ”°λ‘œ μƒμ„±ν•˜μ—¬ μ‚¬μš©ν•œλ‹€.
    • λ””μŠ€ν¬ 기반의 νŒŒμΌμ‹œμŠ€ν…œμ„ ν™œμš©ν•œ 덕뢄에 λΈŒλ‘œμ»€κ°€ μž₯μ• λ°œμƒμœΌλ‘œ κΈ‰μž‘μŠ€λŸ½κ²Œ μ’…λ£Œλ˜μ–΄λ„ ν”„λ‘œμ„ΈμŠ€λ₯Ό μž¬μ‹œμž‘ν•˜μ—¬ μ•ˆμ „ν•˜κ²Œ 데이터λ₯Ό λ‹€μ‹œ μ²˜λ¦¬ν•  수 μžˆλ‹€.
  4. κ³ κ°€μš©μ„±
    • 3개 μ΄μƒμ˜ μ„œλ²„λ‘œ μš΄μ˜λ˜λŠ” μΉ΄ν”„μΉ΄ ν΄λŸ¬μŠ€ν„°λŠ” 일뢀 μ„œλ²„μ— μž₯μ• κ°€ λ°œμƒν•˜λ”λΌλ„ λ¬΄μ€‘λ‹¨μœΌλ‘œ μ•ˆμ „ν•˜κ³  μ§€μ†μ μœΌλ‘œ 데이터λ₯Ό μ²˜λ¦¬ν•  수 μžˆλ‹€.
    • μΉ΄ν”„μΉ΄λŠ” ν΄λŸ¬μŠ€ν„°λŠ” 데이터 볡제(replication)λ₯Ό 톡해 κ³ κ°€μš©μ„±μ˜ νŠΉμ§•μ„ κ°€μ§„λ‹€.

μ˜μ†μ„±μ΄λž€ 데이터λ₯Ό μƒμ„±ν•œ ν”„λ‘œκ·Έλž¨μ΄ μ’…λ£Œλ˜λ”λΌλ„ 사라지지 μ•Šμ€ λ°μ΄ν„°μ˜ νŠΉμ„±μ„ μ˜λ―Έν•œλ‹€.
νŽ˜μ΄μ§€ μΊμ‹œ λ©”λͺ¨λ¦¬ μ˜μ—­μ„ μ‚¬μš©ν•˜μ—¬ ν•œλ²ˆ 읽은 파일 λ‚΄μš©μ€ λ©”λͺ¨λ¦¬μ— μ €μž₯μ‹œμΌ°λ‹€κ°€ λ‹€μ‹œ μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ—, νŒŒμΌμ‹œμŠ€ν…œμ— 데이터λ₯Ό μ €μž₯ν•˜λ”λΌλ„ μ²˜λ¦¬λŸ‰μ΄ λ†’λ‹€.

 

 

 

2. Kafka μ»΄ν¬λ„ŒνŠΈ

2.2 μΉ΄ν”„μΉ΄ λΈŒλ‘œμ»€Β·ν΄λŸ¬μŠ€ν„°Β·μ£Όν‚€νΌ

(1) μΉ΄ν”„μΉ΄ 브둜컀 (Broker)

μΉ΄ν”„μΉ΄ λΈŒλ‘œμ»€λŠ” μΉ΄ν”„μΉ΄ ν΄λΌμ΄μ–ΈνŠΈκ³Ό 데이터λ₯Ό μ£Όκ³ λ°›κΈ° μœ„ν•΄ μ‚¬μš©λ˜λŠ” 주체이자,데이터λ₯Ό λΆ„μ‚°μ €μž₯ν•˜μ—¬ μž₯μ• κ°€ λ°œμƒν•˜λ”λΌλ„ μ•ˆμ „ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λ‹€.
ν•˜λ‚˜μ˜ μ„œλ²„μ—λŠ” ν•˜λ‚˜μ˜ μΉ΄ν”„μΉ΄ 브둜컀 ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λœλ‹€.

(2) μΉ΄ν”„μΉ΄ ν΄λŸ¬μŠ€ν„° (Cluster)

브둜컀 μ„œλ²„ 1λŒ€λ‘œλ„ μš΄μ˜μ€ κ°€λŠ₯ν•˜λ‚˜, 데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ λ³΄κ΄€ν•˜κ³  μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ 3λŒ€ μ΄μƒμ˜ 브둜컀 μ„œλ²„λ₯Ό 1개의 ν΄λŸ¬μŠ€ν„°λ‘œ λ¬Άμ–΄μ„œ μš΄μ˜ν•œλ‹€.
μΉ΄ν”„μΉ΄ ν΄λŸ¬μŠ€ν„°λ‘œ 묢은 λΈŒλ‘œμ»€λ“€μ€ ν”„λ‘œλ“€μ„œκ°€ 보낸 데이터λ₯Ό μ•ˆμ „ν•˜κ²Œ μ €μž₯ν•˜κ³  λ³΅μ œν•˜λŠ” 역할을 μˆ˜ν–‰ν•œλ‹€.

(3) 데이터 전솑과 μ €μž₯

ν”„λ‘œλ“€μ„œλ‘œ λΆ€ν„° 데이터λ₯Ό μ „λ‹¬λ°›μœΌλ©΄ λΈŒλ‘œμ»€λŠ” ν”„λ‘œλ“€μ„œκ°€ μš”μ²­ν•œ ν† ν”½μ˜ νŒŒν‹°μ…˜μ— 데이터λ₯Ό μ €μž₯ν•˜κ³ , μ»¨μŠˆλ¨Έκ°€ 데이터λ₯Ό μš”μ²­ν•˜λ©΄ νŒŒν‹°μ…˜μ— μ €μž₯된 데이터λ₯Ό μ „λ‹¬ν•œλ‹€.
데이터 μ €μž₯은 νŒŒμΌμ‹œμŠ€ν…œμ— μ €μž₯되며,νŽ˜μ΄μ§€ μΊμ‹œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ””μŠ€ν¬ μž…μΆœλ ₯ 속도λ₯Ό λ†’μ—¬μ„œ μ†μ œ 문제λ₯Ό ν•΄κ²°ν–ˆλ‹€.

(4) 데이터 볡제, 싱크

데이터 볡제(replication)λŠ” μΉ΄ν”„μΉ΄λ₯Ό μž₯μ•  ν—ˆμš© μ‹œμŠ€ν…œ(fault tolerant system)으둜 λ™μž‘ν•˜λ„λ‘ ν•˜λŠ” 원동λ ₯이닀.

μΉ΄ν”„μΉ΄ λ³΅μ œλŠ” νŒŒν‹°μ…˜ λ‹¨μœ„λ‘œ 이뀄진닀.

μ„ΈλΆ€ μ„€λͺ…
  • 토픽을 생성할 λ•Œ νŒŒν‹°μ…˜ 볡제 개수λ₯Ό μ„€μ •λ˜κ³ , 직접 μ˜΅μ…˜μ„ μ„ νƒν•˜κ±°λ‚˜ 브둜컀의 κΈ°λ³Έ μ„€μ •μœΌλ‘œ μ„€μ •λœλ‹€.
  • 볡제 개수 μ΅œμ†Ÿκ°’μ€ 1(λ³΅μ œμ—†μŒ)이고, μ΅œλŒ“κ°’μ€ 브둜컀 κ°œμˆ˜μ΄λ‹€.
  • 볡제된 νŒŒν‹°μ…˜μ€ 리더(leader)와 νŒ”λ‘œμ›Œ(follower)둜 κ΅¬μ„±λœλ‹€.
    • 리더 : ν”„λ‘œλ“€μ„œμ™€ μ»¨μŠˆλ¨Έμ™€ 직접 ν†΅μ‹ ν•˜λŠ” νŒŒν‹°μ…˜
    • νŒ”λ‘œμ›Œ : λ‚˜λ¨Έμ§€ 볡제 데이터λ₯Ό κ°–κ³  있고 μžˆλŠ” νŒŒν‹°μ…˜
    • νŒ”λ‘œμ›Œ νŒŒν‹°μ…˜λ“€μ€ 리더 νŒŒν‹°μ…˜μ˜ μ˜€ν”„μ…‹μ„ ν™•μΈν•˜μ—¬ ν˜„μž¬ μžμ‹ μ΄ κ°€μ§€κ³  μžˆλŠ” μ˜€ν”„μ…‹κ³Ό μ°¨μ΄λ‚˜λŠ” 경우 리더 νŒŒν‹°μ…˜μœΌλ‘œλΆ€ν„° 데이터λ₯Ό κ°€μ Έμ™€μ„œ μžμ‹ μ˜ νŒŒν‹°μ…˜μ— μ €μž₯ν•œλ‹€. β‡’ 볡제(replication)
  • λΈŒλ‘œμ»€μ— μž₯μ• κ°€ λ°œμƒν•˜λ©΄, ν•΄λ‹Ή λΈŒλ‘œμ»€μ— μžˆλŠ” 리더 νŒŒν‹°μ…˜μ€ μ‚¬μš©ν•  수 μ—†κΈ° λ•Œλ¬Έμ— νŒ”λ‘œμ›Œ νŒŒν‹°μ…˜ 쀑 ν•˜λ‚˜κ°€ 리더 νŒŒν‹°μ…˜ μ§€μœ„λ₯Ό λ„˜κ²¨λ°›λŠ”λ‹€.
  • 운영 μ‹œ 데이터 μ’…λ₯˜λ§ˆλ‹€ λ‹€λ₯Έ 볡제 개수λ₯Ό μ„€μ •ν•˜κ³ , 상황에 따라 ν† ν”½λ§ˆλ‹€ 볡제 개수λ₯Ό λ‹€λ₯΄κ²Œ μ„€μ •ν•˜μ—¬ μš΄μ˜ν•œλ‹€.
    • 데이터가 일뢀 μœ μ‹€λ˜λ„ λ¬΄κ΄€ν•˜κ³  데이터 처리 속도가 μ€‘μš”ν•˜λ‹€λ©΄ 1 or 2둜 μ„€μ •ν•œλ‹€.
    • μ€‘μš” 정보 λ“± μœ μ‹€μ΄ μ•ˆ λ˜λŠ” λ°μ΄ν„°μ˜ 경우 볡제 개수λ₯Ό 3으둜 μ„€μ •ν•œλ‹€.

 

(5) 컨트둀러

ν΄λŸ¬μŠ€ν„°μ˜ λ‹€μˆ˜ 브둜컀 쀑 ν•œ λŒ€κ°€ 컨트둀러 역할을 ν•œλ‹€.
μ»¨νŠΈλ‘€λŸ¬λŠ” λ‹€λ₯Έ λΈŒλ‘œμ»€λ“€μ˜ μƒνƒœλ₯Ό μ²΄ν¬ν•˜κ³  λΈŒλ‘œμ»€κ°€ ν΄λŸ¬μŠ€ν„°μ—μ„œ λΉ μ§€λŠ” 경우 ν•΄λ‹Ή λΈŒλ‘œμ»€μ— μ‘΄μž¬ν•˜λŠ” 리더 νŒŒν‹°μ…˜μ„ μž¬λΆ„λ°°ν•œλ‹€.
λ§Œμ•½ 컨트둀러 역할을 ν•˜λŠ” λΈŒλ‘œμ»€μ— μž₯μ• κ°€ 생기면 λ‹€λ₯Έ λΈŒλ‘œμ»€κ°€ 컨트둀러 역할을 ν•œλ‹€.

 

(6) 데이터 μ‚­μ œ

μΉ΄ν”„μΉ΄λŠ” λ‹€λ₯Έ λ©”μ‹œμ§„ ν”Œλž«νΌκ³Ό λ‹€λ₯΄κ²Œ μ»¨μŠˆλ¨Έκ°€ 데이터λ₯Ό 가져가더라도 ν† ν”½μ˜ λ°μ΄ν„°λŠ” μ‚­μ œλ˜μ§€ μ•ŠμœΌλ©°, μ»¨μŠˆλ¨Έλ‚˜ ν”„λ‘œλ“€μ„œκ°€ 데이터 μ‚­μ œλ₯Ό μš”μ²­ν•  수 μ—†λ‹€.


였직 브둜컀만이 데이터λ₯Ό μ‚­μ œν•  수 μžˆλ‹€.

데이터 μ‚­μ œλŠ” 파일 λ‹¨μœ„λ‘œ μ΄λ€„μ§€λŠ”λ°, 이 λ‹¨μœ„λ₯Ό 둜그 μ„Έκ·Έλ¨ΌνŠΈ(log segment)라고 λΆ€λ₯Έλ‹€. μ„Έκ·Έλ¨ΌνŠΈμ—λŠ” λ‹€μˆ˜μ˜ 데이터가 λ“€μ–΄μžˆκΈ° λ•Œλ¬Έμ— νŠΉμ • 데이터λ₯Ό μ‚­μ œν•  수 μ—†λ‹€.

 

μ„Έκ·Έλ¨ΌνŠΈλŠ” 데이터가 μŒ“μ΄λŠ” λ™μ•ˆ νŒŒμΌμ‹œμŠ€ν…œμœΌλ‘œ μ—΄λ €μžˆμ§€λ§Œ, μΉ΄ν”„μΉ΄ λΈŒλ‘œμ»€μ— log.segment.bytes λ˜λŠ” log.segment.ms μ˜΅μ…˜μ— 값이 μ„€μ •λ˜λ©΄ μ„Έκ·Έλ¨ΌνŠΈ 파일이 λ‹«νžŒλ‹€.
λ‹«νžŒ μ„Έκ·Έλ¨ΌνŠΈ νŒŒμΌμ€ log.retention.bytes λ˜λŠ” log.retention.msμ˜΅μ…˜μ— 섀정값이 λ„˜μœΌλ©΄ μ‚­μ œλœλ‹€.

 

- μ„Έκ·Έλ¨ΌνŠΈκ°€ λ‹«νžˆλŠ” 기본값은 1GB μš©λŸ‰μ— λ„λ‹¬ν–ˆμ„ λ•ŒμΈλ° 간격을 쀄이고 μ‹ΆμœΌλ©΄ μž‘μ€ μš©λŸ‰μœΌλ‘œ μ„€μ •ν•˜λ©΄ λœλ‹€. 단, 데이터λ₯Ό μ €μž₯ν•˜λŠ”λ™μ•ˆ μž¦μ€ μ„Έκ·Έλ¨ΌνŠΈ μ—¬λ‹«νž˜μ€ λΆ€ν•˜λ₯Ό λ°œμƒν•  수 μžˆμœΌλ―€λ‘œ μ£Όμ˜ν•΄μ•Όν•œλ‹€.
- λ‹«νžŒ μ„Έκ·Έλ¨ΌνŠΈ νŒŒμΌμ„ μ²΄ν¬ν•˜λŠ” 간격은 브둜컀 μ˜΅μ…˜μ˜ log.retention.check.interval.ms에 λ”°λ₯Έλ‹€.

 

(7) 컨슈머 μ˜€ν”„μ…‹ μ €μž₯

컨슈머 그룹은 토픽이 νŠΉμ • νŒŒν‹°μ…˜μœΌλ‘œλΆ€ν„° 데이터λ₯Ό 가져사거 μ²˜λ¦¬ν•˜κ³  이 νŒŒν‹°μ…˜μ˜ μ–΄λŠ λ ˆμ½”λ“œκΉŒμ§€ κ°€μ Έκ°”λŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ μ˜€ν”„μ…‹μ„ μ»€λ°‹ν•œλ‹€.
μ»€λ°‹ν•œ μ˜€ν”„μ…‹μ€ _consumer_offsets 토픽에 μ €μž₯ν•œλ‹€.

 

(8) 코디넀이터

ν΄λŸ¬μŠ€ν„°μ˜ λ‹€μˆ˜ 크둜컀 쀑 ν•œ λŒ€λŠ” μ½”λ””λ„€μ΄μ…˜ 역할을 μˆ˜ν–‰ν•œλ‹€.
μ½”λ””λ„€μ΄ν„°λŠ” 컨슈머 그룹의 μƒνƒœλ₯Ό μ²΄ν¬ν•˜κ³  νŒŒν‹°μ…˜μ„ μ»¨μŠˆλ¨Έμ™€ λ§€μΉ­λ˜λ„λ‘ λΆ„λ°°ν•˜λŠ” 역할을 ν•œλ‹€.

리벨런슀(rebalance) : νŒŒν‹°μ…˜μ„ 컨슈머둜 μž¬ν• λ‹Ήν•˜λŠ” κ³Όμ •. μ»¨μŠˆλ¨Έκ°€ 컨슈머 κ·Έλ£Ήμ—μ„œ λΉ μ§€λ©΄, λ§€μΉ­λ˜μ§€ μ•Šμ€ νŒŒν‹°μ…˜μ„ 정상 λ™μž‘ν•˜λŠ” 컨슈머둜 ν• λ‹Ήν•˜μ—¬ λŠμž„μ—†μ΄ 데이터가 μ²˜λ¦¬λ˜λ„λ‘ 도와쀀닀.

 

(9) 주킀퍼 (Zookeeper)

μ£Όν‚€νΌλŠ” μΉ΄ν”„μΉ΄μ˜ 메타데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ”λ° μ‚¬μš©λœλ‹€. μ–΄λ–€ 데이터λ₯Ό μ €μž₯ν•˜λŠ”μ§€ 확인할 수 있고, μƒμ„±λœ ν† ν”½ 등도 확인 κ°€λŠ₯ν•˜λ‹€.

μΉ΄ν”„μΉ΄ ν΄λŸ¬μŠ€ν„°λ‘œ 묢은 λΈŒλ‘œμ»€λ“€μ€ λ™μΌν•œ 경둜의 주킀퍼 경둜둜 μ„ μ–Έν•΄μ•Ό 같은 μΉ΄ν”„μΉ΄ 브둜컀 묢음이 λœλ‹€. λ§Œμ•½ ν΄λŸ¬μŠ€ν„°λ₯Ό μ—¬λŸ¬κ°œλ‘œ μš΄μ˜ν•œλ‹€λ©΄ ν•œ 개의 주킀퍼에 λ‹€μˆ˜μ˜ μΉ΄ν”„μΉ΄ ν΄λŸ¬μŠ€ν„°λ₯Ό μ—°κ²°ν•΄μ„œ μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€.

'#️⃣ Data Engineering > Kafka' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Kafka] Kafka κ°œλ…κ³Ό κ΅¬μ„±μš”μ†Œ 및 원리  (0) 2023.03.03
[Kafka] Kafka ν΄λΌμ΄μ–ΈνŠΈ  (0) 2023.02.13
[Kafka] ν† ν”½κ³Ό νŒŒν‹°μ…˜, λ ˆμ½”λ“œ  (0) 2023.02.13
  1. πŸ’œ Kafka
  2. 1. Kafka
  3. 1.1 Kafka 탄생 λ°°κ²½
  4. 1.2 Kafka νŠΉμ§•
  5. 2. Kafka μ»΄ν¬λ„ŒνŠΈ
  6. 2.2 μΉ΄ν”„μΉ΄ λΈŒλ‘œμ»€Β·ν΄λŸ¬μŠ€ν„°Β·μ£Όν‚€νΌ
  7. (1) μΉ΄ν”„μΉ΄ 브둜컀 (Broker)
  8. (2) μΉ΄ν”„μΉ΄ ν΄λŸ¬μŠ€ν„° (Cluster)
  9. (3) 데이터 전솑과 μ €μž₯
  10. (4) 데이터 볡제, 싱크
  11. (5) 컨트둀러
  12. (6) 데이터 μ‚­μ œ
  13. (7) 컨슈머 μ˜€ν”„μ…‹ μ €μž₯
  14. (8) 코디넀이터
  15. (9) 주킀퍼 (Zookeeper)
'#️⃣ Data Engineering/Kafka' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [Kafka] Kafka κ°œλ…κ³Ό κ΅¬μ„±μš”μ†Œ 및 원리
  • [Kafka] Kafka ν΄λΌμ΄μ–ΈνŠΈ
  • [Kafka] ν† ν”½κ³Ό νŒŒν‹°μ…˜, λ ˆμ½”λ“œ
HyeM207
HyeM207
"Reflections and Growth Through Records" νšŒκ³ μ™€ 기둝을 ν†΅ν•œ μ„±μž₯으둜
HYEM's Storage"Reflections and Growth Through Records" νšŒκ³ μ™€ 기둝을 ν†΅ν•œ μ„±μž₯으둜
HyeM207
HYEM's Storage
HyeM207
  • ALL (115)
    • #️⃣ CS (Computer Science) (5)
      • Database (2)
      • SQL (2)
      • Git (1)
    • #️⃣ Data Engineering (43)
      • Airflow (18)
      • Spark (8)
      • Snowflake (2)
      • BI,DashBoard (4)
      • ELK Stack (2)
      • Hadoop (5)
      • Kafka (4)
    • #️⃣ Cloud&Container (16)
      • AWS (8)
      • GCP (1)
      • Docker (6)
      • Kubernetes (1)
    • #️⃣ Project 및 κ°œλ°œμΌμ§€ (37)
      • Mini Project (5)
      • κ°œλ°œμΌμ§€ (9)
      • Algorithm 문제 풀이 (20)
    • #️⃣ μ±… 리뷰 (4)
    • #️⃣ νšŒκ³ κΈ€&ν”„λ‘œμ νŠΈ ν›„κΈ° (10)

곡지사항

인기 κΈ€

졜근 λŒ“κΈ€

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝
hELLO Β· Designed By μ •μƒμš°.v4.2.2
HyeM207
[Kafka] Kafka κ°œλ…κ³Ό μ»΄ν¬λ„ŒνŠΈ
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”

κ°œμΈμ •λ³΄

  • ν‹°μŠ€ν† λ¦¬ ν™ˆ
  • 포럼
  • 둜그인

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.