์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

์•„ํŒŒ์น˜ ์นดํ”„์นด(Apache Kafka)์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” (Latency ํŽธ) [3]

busybeans 2021. 9. 9. 23:05
728x90
๋ฐ˜์‘ํ˜•

์‹œ์ž‘ํ•˜๋ฉฐ... ๐Ÿš€

์ด๋ฒˆ์—๋Š” 4๊ฐœ์˜ ์„ฑ๋Šฅ ๋ชฉํ‘œ ์ค‘ ์ฒซ ๋ฒˆ์งธ๋กœ Latency์— ๋Œ€ํ•ด์„œ ์–ด๋–ค ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํŠœ๋‹ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋“€์„œ์™€ ์ปจ์Šˆ๋จธ์˜ option ์ค‘ ์–ด๋–ค option์ด Throughput์— ์˜ํ–ฅ์„ ์ฃผ๋Š”์ง€ ์•Œ์•„๋ณด๋ฉฐ ์–ด๋–ป๊ฒŒ ์ด ์˜ต์…˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์˜ํ–ฅ์„ ์ฃผ๋ฉฐ, ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Latency : ์ง€์—ฐ ์‹œ๊ฐ„์œผ๋กœ ๋ถˆ๋ฆฌ์šฐ๋ฉฐ, ์นดํ”„์นด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ํ•˜๋‚˜์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋น ๋ฅด๊ฒŒ ์ „๋‹ฌํ•˜๋Š”์ง€์˜ ๋ฉ”ํŠธ๋ฆญ์ด๋‹ค.

1. Broker๋ฅผ ํ†ตํ•œ Latency ์ตœ์ ํ™” ๐Ÿš€๐Ÿš€

Partition ๊ฐœ์ˆ˜ ์ œํ•œ

Latency์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŒŒํ‹ฐ์…˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํŒŒํ‹ฐ์…˜์˜ ์ˆ˜๊ฐ€ ๋งŽ์œผ๋ฉด ๋งŽ์„์ˆ˜๋ก ๋ฉ”์‹œ์ง€์˜ Latency๋ฅผ ์œ ๋ฐœํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ํŒŒํ‹ฐ์…˜์— ๋ณต์‚ฌ๋ฅผ ์œ„ํ•œ ์‹œ๊ฐ„๋งŒํผ Latency๊ฐ€ ๋ฐœ์ƒ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํŒŒํ‹ฐ์…˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ Latency๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Broker ์ˆ˜ โฌ†๏ธŽ, partition โฌ‡๏ธŽ

๊ทธ ๋‹ค์Œ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ค‘๊ฐœ์ธ์˜ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๊ณ  ํŒŒํ‹ฐ์…˜ ์ˆ˜๋ฅผ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ broker์—์„œ ๋‹ด๋‹นํ•˜๋Š” partition ์ˆ˜๋ฅผ ์ค„์—ฌ์„œ Replication ํ•˜๋Š” ๋ฐ์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

num.replica.fetchers

ํ•ด๋‹น ์˜ต์…˜์€ Broker์˜ ์˜ต์…˜์œผ๋กœ ์†Œ์Šค ๋ธŒ๋กœ์ปค์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณต์ œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์Šค๋ ˆ๋“œ ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ๋Š˜๋ฆฌ๋ฉด ๋ธŒ๋กœ์ปค์˜ I/O ์กฐ์ž‘์—์„œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๊ฐ€ ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๊ฐ€ ๋Š˜์–ด๋‚˜ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ Latency๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. Producer๋ฅผ ํ†ตํ•œ Latency ์ตœ์ ํ™” ๐Ÿš€๐Ÿš€

linger.ms (default 0)

ํ•ด๋‹น ์˜ต์…˜์€ prodcuer์˜ ์˜ต์…˜์œผ๋กœ ๊ทธ๋‹ค์Œ ๋ฐฐ์น˜ ํ˜•ํƒœ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— ์ถ”๊ฐ€์ ์ธ ๋ฉ”์‹œ์ง€๋“ค์„ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์กฐ์ ˆํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ์ˆœ๊ฐ„ broker๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. (์ง€์—ฐ ์—†์Œ)

compression.type

ํ•ด๋‹น ์˜ต์…˜์€ prodcuer์˜ ์˜ต์…˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์••์ถ•ํ•ด์„œ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์–ด๋–ค ํƒ€์ž…์œผ๋กœ ์••์ถœํ• ์ง€๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

  • CPU : ์••์ถ•์„ ์œ„ํ•œ ์ž์› ์‚ฌ์šฉ
  • NW : ์••์ถ•๋œ ๊ฒฝ์šฐ NW bandwidth ์‚ฌ์šฉ๋Ÿ‰ ์ค„์–ด๋“ฆ
  • ์••์ถ• ์„ฑ๋Šฅ์— ๋”ฐ๋ผ cpu ์‚ฌ์šฉ, nw bandwidth ์ค„์—ฌ์„œ ์ง€์—ฐ ์ตœ์†Œํ™” ๊ฐ€๋Šฅ

acks

ํ•ด๋‹น ์˜ต์…˜์€ prodcuer์˜ ์˜ต์…˜์œผ๋กœ ํ”„๋กœ๋“€์„œ๊ฐ€ ์นดํ”„์นด ํ† ํ”ฝ์˜ ๋ฆฌ๋”์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ธ ํ›„ ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๊ธฐ ์ „ ack์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.

ํ•ด๋‹น ์˜ต์…˜์€ 0, 1, all or -1 ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, 1๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๋ณต์ œ ์—†์ด, ์›๋ณธ๋งŒ ์ €์žฅ๋˜๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•˜์—ฌ Latency๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. Consumer๋ฅผ ํ†ตํ•œ Latency ์ตœ์ ํ™” ๐Ÿš€๐Ÿš€

fetch.min.bytes (default 1)

ํ•ด๋‹น ์˜ต์…˜์€ Consumer์˜ ์˜ต์…˜์œผ๋กœ ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์ฆˆ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ง€์ •ํ•œ ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ˆ„์ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

ํ•ด๋‹น ์˜ต์…˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ 1๋กœ ์„ค์ •ํ•˜๋ฉด ์š”์ฒญ ์‹œ ๋ฐ”๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ์–ด Latency๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

REFERENCE

[1]. https://devidea.tistory.com/90
[2]. https://firststep-de.tistory.com/35
[3]. https://www.ibm.com/docs/ko/oala/1.3.5?topic=SSPFMY_1.3.5/com.ibm.scala.doc/config/iwa_cnf_scldc_cnf_kfk_t.html
[4]. https://www.popit.kr/kafka-%EC%9A%B4%EC%98%81%EC%9E%90%EA%B0%80-%EB%A7%90%ED%95%98%EB%8A%94-producer-acks/
[5]. https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=freepsw&logNo=221028179182
[6]. https://www.confluent.io/blog/optimizing-apache-kafka-deployment/

728x90
๋ฐ˜์‘ํ˜•