๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Kafka

Producer - 2

by Soono991 2023. 4. 9.
๐Ÿ’ก ์ง€๋‚œ๋ฒˆ ์ •๋ฆฌํ–ˆ๋˜ Producer์—์„œ ์ถ”๊ฐ€ ๋‚ด์šฉ์ด ์žˆ์–ด ์ •๋ฆฌํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค.

 

Producer์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„๋“ค์€ ์ „์— ์ •๋ฆฌํ–ˆ๋˜ Producer ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

Producer

ํ”„๋กœ๋“€์„œ๋Š” ์นดํ”„์นด์˜ ํ† ํ”ฝ์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์ด๋ฏธ์ง€๋Š” ํ”„๋กœ๋“€์„œ์˜ ์ „์ฒด์ ์ธ ํ๋ฆ„์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋จผ์ € ์นดํ”„์นด๋กœ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ์‹ค์ œ ๋ฐ์ดํ„ฐ์ธ ProducerRecord๋ฅผ ์ƒ

soono-991.tistory.com

 

acks

acks๋Š” producer๊ฐ€ broker์— ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•œ ๊ฒฐ๊ณผ์— ๊ด€ํ•œ ์„ค์ •์ธ๋ฐ, confluent kafka ๊ณต์‹ ๋ฌธ์„œ์˜ ์„ค๋ช…์„ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#acks

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

์ถœ์ฒ˜: https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#acks

 

acks=0 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ํ”„๋กœ๋“€์„œ๋Š” ์„œ๋ฒ„์˜ ์Šน์ธ์„ ์ „ํ˜€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ ˆ์ฝ”๋“œ๋Š” ์ฆ‰์‹œ ์†Œ์ผ“ ๋ฒ„ํผ์— ์ถ”๊ฐ€๋˜๊ณ  ์ „์†ก๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.
์ด ๊ฒฝ์šฐ ์„œ๋ฒ„๊ฐ€ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ˆ˜์‹ ํ–ˆ๋‹ค๊ณ  ๋ณด์žฅํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์žฌ์‹œ๋„ ๊ตฌ์„ฑ์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(ํด๋ผ์ด์–ธํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‹คํŒจ๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๋ฏ€๋กœ).
๊ฐ ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋ฐ˜ํ™˜๋˜๋Š” ์˜คํ”„์…‹์€ ํ•ญ์ƒ -1๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

acks=1 ์ด๋Š” ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์ด ๋ ˆ์ฝ”๋“œ๋ฅผ ๋กœ์ปฌ ๋กœ๊ทธ์— ๊ธฐ๋กํ•˜์ง€๋งŒ ๋ชจ๋“  ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜์˜ ์ „์ฒด ์Šน์ธ์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์‘๋‹ตํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์ด ๋ ˆ์ฝ”๋“œ๋ฅผ ์Šน์ธํ•œ ์งํ›„ ์‹คํŒจํ•˜์ง€๋งŒ ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜์ด ๋ณต์ œํ•˜๊ธฐ ์ „์— ๋ ˆ์ฝ”๋“œ๊ฐ€ ์†์‹ค๋ฉ๋‹ˆ๋‹ค.

acks=all ์ด๋Š” ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์ด ๋™๊ธฐํ™”๋œ ๋ณต์ œ๋ณธ์˜ ์ „์ฒด ์„ธํŠธ๊ฐ€ ๋ ˆ์ฝ”๋“œ๋ฅผ ์Šน์ธํ•  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•˜๋‚˜ ์ด์ƒ์˜ ๋™๊ธฐํ™” ๋ณต์ œ๋ณธ์ด ์‚ด์•„์žˆ๋Š” ํ•œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์†์‹ค๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋ณด์ฆ์ž…๋‹ˆ๋‹ค. ์ด๋Š” acks=-1 ์„ค์ •๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

acks๋Š” ์œ„์™€ ๊ฐ™์ด 0, 1, -1(all) ์ด 3๊ฐ€์ง€์˜ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,

acks=0์˜ ๊ฒฝ์šฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•œ ํ›„ ์ •์ƒ์ ์œผ๋กœ ์ „์†ก์ด ๋˜์—ˆ๋Š”์ง€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ์ดํ›„ ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ˜ํ™˜๋˜๋Š” RecordMetadata์—๋Š” offset์ด ํ•ญ์ƒ -1๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

 

 

acks=1์˜ ๊ฒฝ์šฐ ๋ฉ”์‹œ์ง€๊ฐ€ ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์„ ํ•˜์ง€๋งŒ, ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜๊นŒ์ง€๋งŒ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜์ด ์žˆ๋”๋ผ๋„ ๋ฆฌํ„ฐ ํŒŒํ‹ฐ์…˜์—๋งŒ ๋ฉ”์‹œ์ง€๊ฐ€ ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ ํ›„ ์ดํ›„ ์ฒ˜๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

์ถœ์ฒ˜: https://sungjk.github.io/2021/01/23/kafka-producer.html

 

acks=all์€ ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜์—๋„ ๋ฉ”์‹œ์ง€๊ฐ€ ์ €์žฅ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์žฅ ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜๊นŒ์ง€ ๋ฉ”์‹œ์ง€๊ฐ€ ์ €์žฅ๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ๋ฉด์—์„œ๋Š” ๋‹ค๋ฅธ ์˜ต์…˜์— ๋น„ํ•ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://sungjk.github.io/2021/01/23/kafka-producer.html

 

์ถœ์ฒ˜: https://sungjk.github.io/2021/01/23/kafka-producer.html

acks=all์˜ ๊ฒฝ์šฐ ์กฐ๊ธˆ ๋” ๊ณ ๋ คํ•ด์•ผ ํ•  ๋ถ€๋ถ„์ด min.insync.replicas ์˜ต์…˜์ธ๋ฐ ์ด ์˜ต์…˜์€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ๋•Œ ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•ด์•ผ ํ•  ์ตœ์†Œํ•œ์˜ Replication ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๊ฒฝ์šฐ min.insync.replicas ์˜ต์…˜์ด 1๋กœ ์„ค์ •์ด ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜๋“ค์ด ์ „๋ถ€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์—๋งŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•ด๋„ ์ •์ƒ์ ์œผ๋กœ ๋ฉ”์‹œ์ง€๊ฐ€ ์ €์žฅ๋˜์—ˆ๋‹ค๊ณ  ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://sungjk.github.io/2021/01/23/kafka-producer.html

ํ•˜์ง€๋งŒ min.insync.replicas ์˜ต์…˜์ด 2๋กœ ์„ค์ •์ด ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ ํŒ”๋กœ์›Œ ํŒŒํ‹ฐ์…˜๋“ค์ด ์œ„์™€ ๊ฐ™์ด ์ „๋ถ€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋ฉด ๋ฆฌ๋” ํŒŒํ‹ฐ์…˜์— ๋ฉ”์‹œ์ง€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ €์žฅ๋˜๋”๋ผ๋„ ์•„์ง 1๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์— ๋ฉ”์‹œ์ง€๊ฐ€ ์ €์žฅ์ด ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์นดํ”„์นด๋Š” ์—๋Ÿฌ๋กœ ํŒ๋‹จํ•˜๊ณ  ๋‹ค์Œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ฐธ๊ณ  ์ž๋ฃŒ

'Kafka' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Consumer - 2  (0) 2023.04.17
Consumer - 1  (0) 2023.04.16
Partitioner & Partition  (0) 2023.04.08
kafka CLI ์‚ฌ์šฉํ•˜๊ธฐ - kafka-configs.(sh | bat)  (0) 2023.04.08
kafka CLI ์‚ฌ์šฉํ•˜๊ธฐ - kafka-consumer-group.(sh | bat)  (0) 2023.04.08

๋Œ“๊ธ€