์คํ๋ง ์นดํ์นด
- ์คํ๋ง ํ๋ ์์ํฌ์์ ์นดํ์นด๋ฅผ ์ถ์ํํ์ฌ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์นดํ์นด ํด๋ผ์ด์ธํธ์์ ํ์ฉํ๋ ์ฌ๋ฌ ๊ฐ์ง ํจํด์ ๋ฏธ๋ฆฌ ์ ๊ณตํจ.
์คํ๋ง ์นดํ์นด ํ๋ก๋์
- ์คํ๋ง ์นดํ์นด ํ๋ก๋์๋
์นดํ์นด ํ ํ๋ฆฟ (Kafka Template)
์ด๋ผ๋ ํด๋์ค๋ฅผ ์ฌ์ฉ - ์นดํ์นด ํ
ํ๋ฆฟ์
ํ๋ก๋์ ํฉํ ๋ฆฌ (Producer Factory)
ํด๋์ค๋ฅผ ํตํด ์์ฑ
๋ฐฉ๋ฒ
- ์คํ๋ง ์นดํ์นด์ ๊ธฐ๋ณธ ์ ๊ณต ํ
ํ๋ฆฟ
- application.yml ํ์ผ์ ์ต์ ์ ์ง์ ํ๊ณ ์ฌ์ฉ
- ์ฌ์ฉ์๊ฐ ์ง์ ์นดํ์นด ํ
ํ๋ฆฟ์ ํ๋ก๋์ ํฉํ ๋ฆฌ๋ก ์์ฑ
- ํ๋ก๋์ ํฉํ ๋ฆฌ๋ฅผ ํตํด ๋ง๋ ์นดํ์นด ํ ํ๋ฆฟ์ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋ก ํ ์ฌ์ฉ
- ํ๋ก๋์์ ํ์ํ ๊ฐ์ข ์ต์ ์ ์ ์ธ ํ ์ฌ์ฉ ๊ฐ๋ฅ
- ์คํ๋ง ์นดํ์นด ์ ํ๋ฆฌ์ผ์ด์
๋ด๋ถ์ ๋ค์ํ ํ๋ก๋์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ ์ถ๋ค๋ฉด ์ฌ์ฉ
- A ํด๋ฌ์คํฐ๋ก ์ ์กํ๋ ์นดํ์นด ํ๋ก๋์
- B ํด๋ฌ์คํฐ๋ก ์ ์กํ๋ ์นดํ์นด ํ๋ก๋์
- ์ด ๋๊ฐ์ ํ๋ก๋์๋ฅผ ๋์์ ์ฌ์ฉ์ ์ ๋ง์ ๋ง๊ฒ Bean ๋ฑ๋ก ํ ์ฌ์ฉํด๋ผ
์คํ๋ง ์นดํ์นด ์ปจ์๋จธ
- ์คํ๋ง ์นดํ์นด ์ปจ์๋จธ๋ ๊ธฐ์กด ์ปจ์๋จธ๋ฅผ ํฌ๊ฒ 2๊ฐ์ง ํ์ ์ผ๋ก ๋๋๊ณ ์ปค๋ฐ์ 7๊ฐ๋ก ๋๋์๋ค.
ํ์
- ๋ ์ฝ๋ ๋ฆฌ์ค๋ (Message Listener)
- ๋จ 1๊ฐ์ ๋ ์ฝ๋๋ง ์ฒ๋ฆฌ
- ๋ฐฐ์น ๋ฆฌ์คํฐ (Batch Message Listener)
- ํ ๋ฒ์ ์ฌ๋ฌ ๊ฐ ๋ ์ฝ๋๋ค ์ฒ๋ฆฌ
๋ฐฉ๋ฒ
- ๊ธฐ์กด ์นดํ์นด ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์ปจ์๋จธ๋ฅผ ๊ตฌํํ ๋ ๋ฒ๊ฑฐ๋ก์ด ๋ถ๋ถ -> ์ปค๋ฐ ๊ตฌํ
- ์นดํ์นด ์ปจ์๋จธ์์ ๊ตฌํํ ๊ฒฝ์ฐ๋ ์คํ , ๋๊ธฐ, ๋น๋๊ธฐ ์ปค๋ฐ ๋๋จ
- ์ค์ ์ด์ํ๊ฒฝ์์๋ ์ด ์ธ์๋ ๋ค์ํจ.
- ์์
- ํน์ ํ์ด๋ฐ๋ง๋ค ์ปค๋ฐ
- ๋ ์ฝ๋ ๊ฐ์์ ๋ฐ๋ผ ์ปค๋ฐ
- ์ด๋ฌํ ๊ท์น ์ ์ฉ ์ ๋ก์ง์ ๊ณ์์ ์ผ๋ก ์ถ๊ฐ ์์ฑํด์ผํจ.
- ์คํ๋ง ์นดํ์นด๋ ํต์ฉ๋๋ ์ปค๋ฐ์ ์ข
๋ฅ๋ฅผ 7๊ฐ์ง๋ก ์ธ๋ถํ
- RECORD, BATCH, TIME, COUNT, COUNT_TIME, MANUAL, MANUAL_IMMEDIATE)
- ์คํ๋ง์ด ๋ฏธ๋ฆฌ ๋ก์ง ์์ฑํด ๋์..
- ์คํ๋ง ์นดํ์นด์์ ์ปค๋ฐ์ ์ปค๋ฐ์ด ์๋๋ผ
AckMode
- ๊ธฐ๋ณธ ๊ฐ์ BATCH
- ์ปจ์๋จธ์ enable.auto.commit = false
๋ฆฌ์ค๋ ์์ฑ ๋ฐฉ์
- ๊ธฐ๋ณธ ๋ฆฌ์ค๋ ์ปจํ ์ด๋ ์ฌ์ฉ
- ์ปจํ ์ด๋ ํฉํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ Bean ๋ฑ๋ก ํ ์ฌ์ฉ
๋ฐ์ํ