Consumer Internals

์ปจ์Šˆ๋จธ๋Š” ํ† ํ”ฝ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์–ด ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์ด๋ฉฐ, ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์ด๋ผ๋Š” ๊ฐœ๋…์„ ํ†ตํ•ด ํ™•์žฅ์„ฑ๊ณผ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅ๋ฐ›๋Š”๋‹ค.

๊ทธ๋ฃน๊ณผ ์ฝ”๋””๋„ค์ดํ„ฐ

์ปจ์Šˆ๋จธ ๊ทธ๋ฃน

์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์€ ๋‹จ์ˆœํžˆ ์ปจ์Šˆ๋จธ์˜ ์ง‘ํ•ฉ์ด ์•„๋‹ˆ๋ผ, ์นดํ”„์นด ๋ธŒ๋กœ์ปค์— ์˜ํ•ด ์ค‘์•™์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ํ•˜๋‚˜์˜ ๋‹จ์œ„์ด๋‹ค.

  • ์ปจ์Šˆ๋จธ(Consumer): ํ† ํ”ฝ์—์„œ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ€์ ธ์™€์„œ(Pull) ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

    • ๊ฐ ์ปจ์Šˆ๋จธ๋Š” ์ž์‹ ์ด ์ฝ์€ ์ด๋ฒคํŠธ์˜ ์˜คํ”„์…‹(Offset)์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ ์˜คํ”„์…‹์„ ์ปค๋ฐ‹ํ•˜์—ฌ ์–ด๋””๊นŒ์ง€ ์ฝ์—ˆ๋Š”์ง€ ๊ธฐ๋ก

    • ์˜คํ”„์…‹ ์ปค๋ฐ‹ ๋ฐฉ์‹์—๋Š” ์ž๋™ ์ปค๋ฐ‹(auto-commit)๊ณผ ์ˆ˜๋™ ์ปค๋ฐ‹(manual commit)์ด ์žˆ์œผ๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ์ฒ˜๋ฆฌ ์™„๋ฃŒ ํ›„ ๋ฐฐ์น˜ ๋‹จ์œ„๋กœ ์ปค๋ฐ‹ํ•˜๋Š” ๋ฐฉ์‹์„ ๊ถŒ์žฅ

  • ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน(Consumer Group): ๋™์ผํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ํŠน์ • ํ† ํ”ฝ์„ ๊ตฌ๋…ํ•˜๋Š” ์ปจ์Šˆ๋จธ๋“ค์˜ ์ง‘ํ•ฉ

    • ์นดํ”„์นด ์ปจ์Šˆ๋จธ์˜ ํ™•์žฅ์„ฑ๊ณผ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ๊ตฌํ˜„ํ•˜๋Š” ํ•ต์‹ฌ ๊ฐœ๋…

    • ํ† ํ”ฝ์˜ ๊ฐ ํŒŒํ‹ฐ์…˜์€ ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน ๋‚ด ๋‹จ ํ•˜๋‚˜์˜ ์ปจ์Šˆ๋จธ์—๊ฒŒ๋งŒ ํ• ๋‹น

      • ์˜ˆ์‹œ

        • 10๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์„ ๊ฐ€์ง„ ํ† ํ”ฝ์ด ์žˆ๋‹ค๋ฉด, ํ•œ ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์€ ์ตœ๋Œ€ 10๊ฐœ์˜ ์ปจ์Šˆ๋จธ๋ฅผ ํˆฌ์ž…ํ•˜์—ฌ ๋ณ‘๋ ฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

          • ๋” ์ถ”๊ฐ€ํ•˜๋”๋ผ๋„ ํŒŒํ‹ฐ์…˜ ์ˆ˜๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ์ถ”๊ฐ€ ์ปจ์Šˆ๋จธ๋Š” ์œ ํœด ์ƒํƒœ

        • ๋งŒ์•ฝ ๊ทธ๋ฃน ๋‚ด ์ปจ์Šˆ๋จธ ์ค‘ ํ•˜๋‚˜์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์นดํ”„์นด๋Š” ๋ฆฌ๋ฐธ๋Ÿฐ์Šค(Rebalance) ๊ณผ์ •์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์ปจ์Šˆ๋จธ์—๊ฒŒ ์ž๋™์œผ๋กœ ์žฌํ• ๋‹น

    • ๊ฐ ๊ทธ๋ฃน์ด ๋…๋ฆฝ์ ์ธ ์˜คํ”„์…‹ ๊ด€๋ฆฌ

      • ๋™์ผํ•œ ํ† ํ”ฝ์„ ์—ฌ๋Ÿฌ ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์ด ๊ฐ์ž ๋…๋ฆฝ์ ์œผ๋กœ ๊ตฌ๋… ๊ฐ€๋Šฅ(๋™์ผํ•œ ์ด๋ฒคํŠธ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ)

๊ทธ๋ฃน ์ฝ”๋””๋„ค์ดํ„ฐ

๊ฐ ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์€ ๋ธŒ๋กœ์ปค ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ทธ๋ฃน ์ฝ”๋””๋„ค์ดํ„ฐ(Group Coordinator)๋กœ ํ• ๋‹น๋ฐ›์•„ ๊ด€๋ฆฌ๋œ๋‹ค.

  • ๊ทธ๋ฃน ์ฝ”๋””๋„ค์ดํ„ฐ(Group Coordinator)

    • ๊ฐ ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์€ ๋ธŒ๋กœ์ปค ์ค‘ ํ•˜๋‚˜๋ฅผ ์ฝ”๋””๋„ค์ดํ„ฐ๋กœ ํ• ๋‹น

    • ์ฝ”๋””๋„ค์ดํ„ฐ๋Š” ๊ทธ๋ฃน ๋‚ด ์ปจ์Šˆ๋จธ๋“ค์˜ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๊ณ , ์ƒˆ๋กœ์šด ์ปจ์Šˆ๋จธ๊ฐ€ ์ฐธ์—ฌํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์ปจ์Šˆ๋จธ๊ฐ€ ์ดํƒˆํ•  ๋•Œ ํŒŒํ‹ฐ์…˜ ์žฌํ• ๋‹น(๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ)์„ ์ฃผ๋„ํ•˜๋Š” ์—ญํ• 

  • ์ปจ์Šˆ๋จธ์˜ ๊ทธ๋ฃน ์ฐธ์—ฌ ๊ณผ์ •

    • ์ปจ์Šˆ๋จธ๋Š” ์‹œ์ž‘ ์‹œ ์ฝ”๋””๋„ค์ดํ„ฐ์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด ๊ทธ๋ฃน์— ์ฐธ์—ฌ

    • ๊ทธ๋ฃน ๋‚ด ์ฒซ ๋ฒˆ์งธ๋กœ ์ฐธ์—ฌํ•œ ์ปจ์Šˆ๋จธ๊ฐ€ ๋ฆฌ๋” ์—ญํ•  ์ˆ˜ํ–‰

      • ๋ฆฌ๋”๋Š” ์ฝ”๋””๋„ค์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ๊ทธ๋ฃน ๋ฉค๋ฒ„ ๋ชฉ๋ก๊ณผ ๊ตฌ๋… ํ† ํ”ฝ ์ •๋ณด๋ฅผ ๋ฐ›์•„ ์–ด๋–ค ์ปจ์Šˆ๋จธ๊ฐ€ ์–ด๋–ค ํŒŒํ‹ฐ์…˜์„ ํ• ๋‹น๋ฐ›์„์ง€ ๊ฒฐ์ •

    • ๋ฆฌ๋”๊ฐ€ ๊ฒฐ์ •ํ•œ ํ• ๋‹น ๊ณ„ํš์„ ์ฝ”๋””๋„ค์ดํ„ฐ์—๊ฒŒ ์ „๋‹ฌํ•˜๋ฉด, ์ฝ”๋””๋„ค์ดํ„ฐ๋Š” ์ด ๊ณ„ํš์„ ๋ชจ๋“  ๊ทธ๋ฃน ๋ฉค๋ฒ„์—๊ฒŒ ์ „ํŒŒํ•˜์—ฌ ๊ฐ์ž ์ž์‹ ์ด ๋‹ด๋‹นํ•  ํŒŒํ‹ฐ์…˜์„ ์ธ์ง€ํ•˜๊ณ  ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ์‹œ์ž‘

๊ทธ๋ฃน ์ƒ๋ช…์ฃผ๊ธฐ

ํ•˜ํŠธ๋น„ํŠธ

์ฝ”๋””๋„ค์ดํ„ฐ๋Š” ์ปจ์Šˆ๋จธ๊ฐ€ ์ •์ƒ ๋™์ž‘ ์ค‘์ธ์ง€ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•˜๋ฉฐ, ์ด๋ฅผ ์œ„ํ•ด ํ•˜ํŠธ๋น„ํŠธ(Heartbeat) ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • heartbeat.interval.ms

    • ์ปจ์Šˆ๋จธ๊ฐ€ ์ฝ”๋””๋„ค์ดํ„ฐ์—๊ฒŒ ์ž์‹ ์ด ์‚ด์•„์žˆ์Œ์„ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ํ•˜ํŠธ๋น„ํŠธ๋ฅผ ๋ณด๋‚ด๋Š” ์ฃผ๊ธฐ

    • session.timeout.ms๋ณด๋‹ค ๋ฐ˜๋“œ์‹œ ๋‚ฎ๊ฒŒ ์„ค์ •

  • session.timeout.ms

    • ์ฝ”๋””๋„ค์ดํ„ฐ๊ฐ€ ์ปจ์Šˆ๋จธ๋กœ๋ถ€ํ„ฐ ํ•˜ํŠธ๋น„ํŠธ๋ฅผ ๋ฐ›์ง€ ๋ชปํ–ˆ์„ ๋•Œ, ํ•ด๋‹น ์ปจ์Šˆ๋จธ๊ฐ€ ๋น„์ •์ƒ ์ข…๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ธฐ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ตœ๋Œ€ ์‹œ๊ฐ„

    • ์ด ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜๋ฉด ์ฝ”๋””๋„ค์ดํ„ฐ๋Š” ํ•ด๋‹น ์ปจ์Šˆ๋จธ๋ฅผ ๊ทธ๋ฃน์—์„œ ์ œ์™ธํ•˜๊ณ  ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ์„ ์‹œ์ž‘

๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ

๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ์€ ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์˜ ํ™•์žฅ์„ฑ๊ณผ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์œ„ํ•ด ํŒŒํ‹ฐ์…˜์˜ ์†Œ์œ ๊ถŒ์„ ๋™์ ์œผ๋กœ ์žฌ๋ถ„๋ฐฐํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

  • ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐœ์ƒ ์‹œ์ 

    • ๊ทธ๋ฃน์— ์ƒˆ๋กœ์šด ์ปจ์Šˆ๋จธ๊ฐ€ ์ฐธ์—ฌํ•  ๋•Œ

    • ๊ทธ๋ฃน์˜ ๊ธฐ์กด ์ปจ์Šˆ๋จธ๊ฐ€ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜, ์žฅ์• ๋กœ ์ธํ•ด ์„ธ์…˜ ํƒ€์ž„์•„์›ƒ์„ ์ดˆ๊ณผํ•  ๋•Œ

    • ๊ตฌ๋… ์ค‘์ธ ํ† ํ”ฝ์˜ ํŒŒํ‹ฐ์…˜ ์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ

  • ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ ๊ณผ์ •๊ณผ ์˜ํ–ฅ

    • ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ์ด ๋ฐœ์ƒํ•˜๋Š” ๋™์•ˆ, ํ•ด๋‹น ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน์˜ ๋ชจ๋“  ์ปจ์Šˆ๋จธ๋Š” ์ผ์‹œ์ ์œผ๋กœ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์ค‘๋‹จ

    • ์ด ์ค‘๋‹จ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”

      • session.timeout.ms, heartbeat.interval.ms ๋“ฑ์˜ ์„ค์ •์„ ํ†ตํ•ด ๋ฆฌ๋ฐธ๋Ÿฐ์Šค ๊ฐ์ง€ ๋ฏผ๊ฐ๋„ ์กฐ์ ˆ ๊ฐ€๋Šฅ

ํŒŒํ‹ฐ์…˜ ํ• ๋‹น ์ „๋žต

๊ฐ ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน ๋‚ด์—์„œ ํŒŒํ‹ฐ์…˜์„ ์ปจ์Šˆ๋จธ๋“ค์—๊ฒŒ ์–ด๋–ป๊ฒŒ ๋ถ„๋ฐฐํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์ „๋žต์ด๋‹ค.

  • Range: ํ† ํ”ฝ๋ณ„๋กœ ํŒŒํ‹ฐ์…˜์„ ์—ฐ์†๋œ ๋ฒ”์œ„๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ํ• ๋‹น

  • RoundRobin: ๋ชจ๋“  ํ† ํ”ฝ์˜ ํŒŒํ‹ฐ์…˜์„ ๋ชจ์•„ ๋ผ์šด๋“œ๋กœ๋นˆ ๋ฐฉ์‹์œผ๋กœ ์ˆœ์„œ๋Œ€๋กœ ํ• ๋‹น

  • Sticky: ๊ธฐ์กด์˜ ํŒŒํ‹ฐ์…˜ ํ• ๋‹น์„ ์ตœ๋Œ€ํ•œ ์œ ์ง€ํ•˜๋ ค ์‹œ๋„(๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ ์‹œ ์ตœ์†Œํ•œ์˜ ํŒŒํ‹ฐ์…˜ ์ด๋™๋งŒ ๋ฐœ์ƒ์‹œ์ผœ ์•ˆ์ •์„ฑ์„ ๋†’์ž„)

  • CooperativeSticky: Sticky ์ „๋žต์„ ๊ฐœ์„ ํ•˜์—ฌ, "Stop-the-world" ์—†์ด ์ผ๋ถ€ ์ปจ์Šˆ๋จธ๋Š” ๊ณ„์†ํ•ด์„œ ๊ธฐ์กด ํŒŒํ‹ฐ์…˜์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ์ ์ง„์  ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ง€์›

๋ฐ์ดํ„ฐ ์ˆ˜์‹  ๋ฐฉ์‹

์ปจ์Šˆ๋จธ๋Š” ๋ธŒ๋กœ์ปค๊ฐ€ ๋ฐ€์–ด์ฃผ๋Š”(Push) ๋ฐฉ์‹์ด ์•„๋‹Œ, ๋Šฅ๋™์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”(Pull) ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, poll() ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค.

  • max.poll.interval.ms

    • poll() ํ˜ธ์ถœ ์‚ฌ์ด์˜ ์ตœ๋Œ€ ํ—ˆ์šฉ ์‹œ๊ฐ„.

    • ๋งŒ์•ฝ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ๋กœ์ง์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ค ์ด ์‹œ๊ฐ„์„ ์ดˆ๊ณผํ•˜๋ฉด, ์ปจ์Šˆ๋จธ๋Š” ๋น„์ •์ƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด ๊ทธ๋ฃน์—์„œ ์ดํƒˆ๋˜๊ณ  ๋ฆฌ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐœ์ƒ

  • ๋ฐ์ดํ„ฐ ํŽ˜์น˜ ๊ด€๋ จ ์ฃผ์š” ์„ค์ •

    • fetch.min.bytes: ๋ธŒ๋กœ์ปค๊ฐ€ ์ปจ์Šˆ๋จธ์—๊ฒŒ ์‘๋‹ต์„ ์ฃผ๊ธฐ ์ „๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ตœ์†Œ ํฌ๊ธฐ

    • fetch.max.wait.ms: fetch.min.bytes์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ•˜๋”๋ผ๋„, ๋ธŒ๋กœ์ปค๊ฐ€ ์‘๋‹ต์„ ์ฃผ๊ธฐ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๋Š” ์ตœ๋Œ€ ์‹œ๊ฐ„

    • max.poll.records: poll() ํ•œ๋ฒˆ์˜ ํ˜ธ์ถœ๋กœ ๋ฐ˜ํ™˜๋ฐ›๋Š” ์ตœ๋Œ€ ๋ ˆ์ฝ”๋“œ ์ˆ˜

ํŠธ๋žœ์žญ์…˜๊ณผ ๋ฐ์ดํ„ฐ ๊ฒฉ๋ฆฌ

ํŠธ๋žœ์žญ์…”๋„ ํ”„๋กœ๋“€์„œ๊ฐ€ ๋ณด๋‚ธ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ, ์ปจ์Šˆ๋จธ๋Š” ์–ด๋–ค ์ƒํƒœ์˜ ๋ฉ”์‹œ์ง€๊นŒ์ง€ ์ฝ์„์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • read_uncommitted: ํŠธ๋žœ์žญ์…˜์˜ ์ปค๋ฐ‹ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์Œ

  • read_committed: ์„ฑ๊ณต์ ์œผ๋กœ ์ปค๋ฐ‹๋œ ํŠธ๋žœ์žญ์…˜์˜ ๋ฉ”์‹œ์ง€๋งŒ ์ฝ์Œ

๋ฉ”์‹œ์ง€ ์ปค๋ฐ‹ ์ „๋žต

์ปจ์Šˆ๋จธ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์–ด๋””๊นŒ์ง€ ์ฒ˜๋ฆฌํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์˜คํ”„์…‹(Offset)์„ ๊ธฐ๋กํ•˜๋Š” ํ–‰์œ„๋ฅผ ์ปค๋ฐ‹(Commit)์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด ์ปค๋ฐ‹ ์ „๋žต์— ๋”ฐ๋ผ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ์˜ ์‹ ๋ขฐ์„ฑ ์ˆ˜์ค€์ด ๊ฒฐ์ •๋œ๋‹ค.

  • ์ž๋™ ์ปค๋ฐ‹(enable.auto.commit=true)

    • poll() ํ˜ธ์ถœ ์‹œ, auto.commit.interval.ms ์ฃผ๊ธฐ์— ๋งž์ถฐ ์ด์ „์— poll()๋กœ ๋ฐ˜ํ™˜๋œ ๋งˆ์ง€๋ง‰ ์˜คํ”„์…‹์„ ์ž๋™์œผ๋กœ ์ปค๋ฐ‹

    • ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ์™„๋ฃŒ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ์ปค๋ฐ‹์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ๋ฐ์ดํ„ฐ ์œ ์‹ค์ด๋‚˜ ์ค‘๋ณต์˜ ์œ„ํ—˜ ์กด์žฌ

      • ์œ ์‹ค: ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ์— ์‹คํŒจํ–ˆ์œผ๋‚˜ ๋‹ค์Œ poll()์—์„œ ์ž๋™ ์ปค๋ฐ‹๋˜๋ฉด, ํ•ด๋‹น ๋ฉ”์‹œ์ง€๋Š” ์ฒ˜๋ฆฌ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ

      • ์ค‘๋ณต: ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๋Š” ์„ฑ๊ณตํ–ˆ์œผ๋‚˜ ์ปค๋ฐ‹ ์ „์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์žฌ์‹œ์ž‘ ํ›„ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹ ์ง€์ ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ฒ˜๋ฆฌ

  • ์ˆ˜๋™ ์ปค๋ฐ‹(enable.auto.commit=false)

    • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ์ปค๋ฐ‹ ์‹œ์ ์„ ์ œ์–ดํ•˜๋Š” ๋ฐฉ์‹

    • ๋™๊ธฐ ์ปค๋ฐ‹(commitSync)

      • ๋ธŒ๋กœ์ปค๋กœ๋ถ€ํ„ฐ ์ปค๋ฐ‹ ์„ฑ๊ณต ์‘๋‹ต์„ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ๋ธ”๋กœํ‚น

      • ์ปค๋ฐ‹์ด ํ™•์‹คํ•˜๊ฒŒ ๋ณด์žฅ๋˜์–ด ์‹ ๋ขฐ์„ฑ์ด ๋†’์Œ

    • ๋น„๋™๊ธฐ ์ปค๋ฐ‹(commitAsync)

      • ์ปค๋ฐ‹ ์š”์ฒญ ํ›„ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ฆ‰์‹œ ๋‹ค์Œ ๋กœ์ง์„ ์ˆ˜ํ–‰

      • ์ฒ˜๋ฆฌ๋Ÿ‰์€ ๋†’์ง€๋งŒ ์ปค๋ฐ‹ ์‹คํŒจ ์‹œ ์žฌ์‹œ๋„๊ฐ€ ๋ณต์žกํ•˜๊ณ , ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ ์ฃผ์˜ ํ•„์š”

Last updated

Was this helpful?