ะ
์ฌ๊ธฐ์ ๋ณต์ ๋จ์๋ ํํฐ์
์
๋๋ค. ๊ฐ ์ฃผ์ ์๋ ํ๋ ์ด์์ ์น์
์ด ์์ต๋๋ค. ๊ฐ ์น์
์๋ ์ถ์ข
์๊ฐ ์๊ฑฐ๋ ์๋ ๋ฆฌ๋๊ฐ ์์ต๋๋ค. ์ฃผ์ ๋ฅผ ์์ฑํ ๋ ํํฐ์
์์ ๋ณต์ ๊ณ์๋ฅผ ์ง์ ํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ๊ฐ์ 3์
๋๋ค. ์ด๋ XNUMX๊ฐ์ ๋ณต์ ๋ณธ(๋ฆฌ๋ XNUMX๊ฐ์ ํ๋ก์ด XNUMX๊ฐ)์ ์๋ฏธํฉ๋๋ค.
์. 1. XNUMX๊ฐ์ ์น์
์ด XNUMX๊ฐ์ ๋ธ๋ก์ปค์ ๋ถ์ฐ๋ฉ๋๋ค.
๋ชจ๋ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์ฒญ์ ๋ฆฌ๋์๊ฒ ์ ๋ฌ๋ฉ๋๋ค. ํ๋ก์ด๋ ์ ๊ธฐ์ ์ผ๋ก ๋ฆฌ๋์๊ฒ ์ต์ ๋ฉ์์ง ์์ ์์ฒญ์ ๋ณด๋ ๋๋ค. ์๋น์๋ ์ถ์ข ์์๊ฒ ๊ฒฐ์ฝ ์์งํ์ง ์์ผ๋ฉฐ ํ์๋ ์ค๋ณต์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ์ ์ํด์๋ง ์กด์ฌํฉ๋๋ค.
ํํฐ์ ์คํจ
๋ธ๋ก์ปค๊ฐ ์คํจํ๋ฉด ์ฌ๋ฌ ์น์ ์ ๋ฆฌ๋๊ฐ ์คํจํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ฐ๊ฐ์์ ๋ค๋ฅธ ๋ ธ๋์ ํ๋ก์ด๊ฐ ๋ฆฌ๋๊ฐ ๋ฉ๋๋ค. ์ค์ ๋ก ๋๊ธฐํ ์์๋ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค. ๋๊ธฐํ๋ ํ๋ก์ด๊ฐ ์๋์ง ์ฌ๋ถ, ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋๊ธฐํ๋์ง ์์ ๋ณต์ ๋ณธ์ผ๋ก์ ์ ํ์ด ํ์ฉ๋๋์ง ์ฌ๋ถ. ํ์ง๋ง ์ง๊ธ์ ์ํฉ์ ๋ณต์กํ๊ฒ ๋ง๋ค์ง ๋ง์ธ์.
๋ธ๋ก์ปค 3์ด ๋คํธ์ํฌ๋ฅผ ๋ ๋๊ณ ๋ธ๋ก์ปค 2์ ์น์ 2์ ๋ํ ์๋ก์ด ๋ฆฌ๋๊ฐ ์ ์ถ๋ฉ๋๋ค.
์. 2. ๋ธ๋ก์ปค 3์ด ์ฌ๋งํ๊ณ ๋ธ๋ก์ปค 2์ ์ถ์ข
์๊ฐ ํํฐ์
2์ ์๋ก์ด ๋ฆฌ๋๋ก ์ ์ถ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ธ๋ก์ปค 1์ด ๋ ๋๊ณ ์น์ 1๋ ๋ฆฌ๋๋ฅผ ์์ต๋๋ค. ๋ฆฌ๋์ ์ญํ ์ ๋ธ๋ก์ปค 2์๊ฒ ์ ๋ฌ๋ฉ๋๋ค.
์. 3. ๋ธ๋ก์ปค๊ฐ ํ ๋ช
๋จ์์ต๋๋ค. ๋ชจ๋ ๋ฆฌ๋๋ ์ค๋ณต์ฑ์ด ์ ํ ์๋ ํ๋์ ๋ธ๋ก์ปค์ ์์ต๋๋ค.
๋ธ๋ก์ปค 1์ด ๋ค์ ์จ๋ผ์ธ ์ํ๊ฐ ๋๋ฉด 2๊ฐ์ ํ๋ก์ด๋ฅผ ์ถ๊ฐํ์ฌ ๊ฐ ํํฐ์ ์ ์ฝ๊ฐ์ ์ค๋ณต์ฑ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๋ฆฌ๋๋ ์ฌ์ ํ ๋ธ๋ก์ปค XNUMX์ ๋จ์ ์์์ต๋๋ค.
์. 4. ๋ฆฌ๋๋ ๋ธ๋ก์ปค 2์ ๋จ์ ์์ต๋๋ค.
๋ธ๋ก์ปค 3์ด ๋ํ๋๋ฉด ํํฐ์ ๋น 2๊ฐ์ ๋ณต์ ๋ณธ์ผ๋ก ๋์๊ฐ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๋ฆฌ๋๋ ์ฌ์ ํ ๋ธ๋ก์ปค XNUMX์ ์์ต๋๋ค.
์. 5. ๋ธ๋ก์ปค 1, 3 ๋ณต์ ํ ๋ฆฌ๋์ ๋ถ๊ท ํ ๋ฐฐ์น
Kafka์๋ RabbitMQ๋ณด๋ค ๋ ๋์ ๋ฆฌ๋ ์ฌ์กฐ์ ์ ์ํ ๋๊ตฌ๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ง์ด๊ทธ๋ ์ด์ ์ค ์ค๋ณต์ฑ์ ์ค์ฌ ๋ง์คํฐ ๋ ธ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฑ ์ ๋ณ๊ฒฝํ๋ ํ์ฌ ํ๋ฌ๊ทธ์ธ ๋๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํด์ผ ํ์ต๋๋ค. ๋ํ ๋๊ท๋ชจ ๋๊ธฐ์ด์ ๊ฒฝ์ฐ ๋๊ธฐํ ์ค์ ๋น๊ฐ์ฉ์ฑ์ ํ์ฉํด์ผ ํ์ต๋๋ค.
Kafka์๋ ๋ฆฌ๋ ์ญํ ์ ๋ํด "์ ํธ ๋ณต์ ๋ณธ"์ด๋ผ๋ ๊ฐ๋ ์ด ์์ต๋๋ค. ํ ํฝ ํํฐ์ ์ด ์์ฑ๋๋ฉด Kafka๋ ๋ ธ๋ ์ ์ฒด์ ๋ฆฌ๋๋ฅผ ๊ท ๋ฑํ๊ฒ ๋ฐฐํฌํ๋ ค๊ณ ์๋ํ๊ณ ์ฒซ ๋ฒ์งธ ๋ฆฌ๋๋ฅผ ์ ํธํ๋ ๋ฆฌ๋๋ก ํ์ํฉ๋๋ค. ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์๋ฒ ์ฌ๋ถํ , ์ค๋ฅ ๋ฐ ์ฐ๊ฒฐ ๋๊น์ผ๋ก ์ธํด ์์์ ์ค๋ช ํ ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ์ฒ๋ผ ๋ฆฌ๋๊ฐ ๋ค๋ฅธ ๋ ธ๋์ ์์นํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Kafka๋ ๋ ๊ฐ์ง ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
- ์ต์ auto.leader.rebalance.enable=true ์ปจํธ๋กค๋ฌ ๋ ธ๋๊ฐ ์๋์ผ๋ก ๋ฆฌ๋๋ฅผ ๊ธฐ๋ณธ ๋ณต์ ๋ณธ์ ๋ค์ ํ ๋นํ์ฌ ๊ท ์ผํ ๋ฐฐํฌ๋ฅผ ๋ณต์ํ ์ ์์ต๋๋ค.
- ๊ด๋ฆฌ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์์ต๋๋ค ์นดํ์นด-์ ํธ-๋ณต์ ๋ณธ-election.sh ์๋ ์ฌํ ๋น์ฉ.
์. 6. ์ฌ์กฐ์ ํ ๋ณต์ ๋ณธ
์ด๊ฒ์ ์คํจ์ ๋จ์ํ๋ ๋ฒ์ ์ด์ง๋ง ํ์ค์ ๋ ๋ณต์กํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋๋ฌด ๋ณต์กํ ๊ฒ์ด ์์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ๋๊ธฐํ๋ ๋ณต์ ๋ณธ(In-Sync Replicas, ISR)์ผ๋ก ๊ท๊ฒฐ๋ฉ๋๋ค.
๋๊ธฐํ๋ ๋ณต์ ๋ณธ(ISR)
ISR์ "๋๊ธฐํ"(๋๊ธฐํ)๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ ํํฐ์ ์ ๋ณต์ ๋ณธ ์ธํธ์ ๋๋ค. ๋ฆฌ๋๋ ์์ง๋ง ์ถ์ข ์๋ ์์ ์๋ ์๋ค. ๊ฐ๊ฒฉ์ด ๋ง๋ฃ๋๊ธฐ ์ ์ ๋ชจ๋ ๋ฆฌ๋ ๋ฉ์์ง์ ์ ํํ ๋ณต์ฌ๋ณธ์ ๋ง๋ ๊ฒฝ์ฐ ํ๋ก์ด๋ ๋๊ธฐํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ๋ณต์ .์ง์ฐ.์๊ฐ.์ต๋.ms.
๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ํ๋ก์ด๊ฐ ISR ์ธํธ์์ ์ ๊ฑฐ๋ฉ๋๋ค.
- ๊ฐ๊ฒฉ ์ ํ์ ์์ฒญํ์ง ์์์ต๋๋ค. ๋ณต์ .์ง์ฐ.์๊ฐ.์ต๋.ms (์ฃฝ์ ๊ฒ์ผ๋ก ์ถ์ )
- ๊ฐ๊ฒฉ ๋์ ์ ๋ฐ์ดํธ๋ฅผ ๊ด๋ฆฌํ์ง ๋ชปํ์ต๋๋ค. ๋ณต์ .์ง์ฐ.์๊ฐ.์ต๋.ms (๋๋ฆฐ ๊ฒ์ผ๋ก ๊ฐ์ฃผ)
ํ๋ก์๋ ์ผ์ ๊ฐ๊ฒฉ์ผ๋ก ์ํ๋ง ์์ฒญ์ ํฉ๋๋ค. ๋ณต์ ๋ณธ.fetch.wait.max.ms, ๊ธฐ๋ณธ๊ฐ์ 500ms์ ๋๋ค.
ISR์ ๋ชฉ์ ์ ๋ช ํํ๊ฒ ์ค๋ช ํ๋ ค๋ฉด ์์ฐ์์ ํ์ธ๊ณผ ์ผ๋ถ ์คํจ ์๋๋ฆฌ์ค๋ฅผ ์ดํด๋ด์ผ ํฉ๋๋ค. ์์ฐ์๋ ๋ธ๋ก์ปค๊ฐ ํ์ธ์ ๋ณด๋ด๋ ์๊ธฐ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
- acks=0, ํ์ธ์ด ์ ์ก๋์ง ์์
- acks=1, ๋ฆฌ๋๊ฐ ๋ก์ปฌ ๋ก๊ทธ์ ๋ฉ์์ง๋ฅผ ์์ฑํ ํ ํ์ธ์ด ์ ์ก๋ฉ๋๋ค.
- acks=all, ISR์ ๋ชจ๋ ๋ณต์ ๋ณธ์ด ๋ฉ์์ง๋ฅผ ๋ก์ปฌ ๋ก๊ทธ์ ๊ธฐ๋กํ ํ ํ์ธ์ด ์ ์ก๋ฉ๋๋ค.
Kafka ์ฉ์ด์์๋ ISR์ด ๋ฉ์์ง๋ฅผ ์ ์ฅํ ๊ฒฝ์ฐ ํด๋น ๋ฉ์์ง๊ฐ "์ปค๋ฐ"๋ฉ๋๋ค. Acks=all์ ๊ฐ์ฅ ์์ ํ ์ต์ ์ด์ง๋ง ์ง์ฐ์ด ์ถ๊ฐ๋ฉ๋๋ค. ์คํจ์ ๋ ๊ฐ์ง ์์ ๋ค์ํ 'acks' ์ต์ ์ด ISR ๊ฐ๋ ๊ณผ ์ด๋ป๊ฒ ์ํธ ์์ฉํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Ack=1 ๋ฐ ISR
์ด ์์์๋ ๋ฆฌ๋๊ฐ ๋ชจ๋ ํ๋ก์ด์ ๋ชจ๋ ๋ฉ์์ง๊ฐ ์ ์ฅ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์์ผ๋ฉด ๋ฆฌ๋๊ฐ ์คํจํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์์์ ์ ์ ์์ต๋๋ค. ๋๊ธฐํ๋์ง ์์ ํ๋ก์ด ํ์์ ์ค์ ์ ํตํด ํ์ฑํํ๊ฑฐ๋ ๋นํ์ฑํํ ์ ์์ต๋๋ค. ๋ถ์ ํ.๋ฆฌ๋.์ ๊ฑฐ.ํ์ฑํ.
์ด ์์์ ์ ์กฐ์ ์ฒด์ ๊ฐ์ acks=1์ ๋๋ค. ์น์ ์ ์ธ ๋ธ๋ก์ปค ๋ชจ๋์ ๋ถ์ฐ๋ฉ๋๋ค. ๋ธ๋ก์ปค 3์ด ๋ค์ณ์ ธ ์์ผ๋ฉฐ 7456์ด ์ ์ ๋ฆฌ๋์ ๋๊ธฐํ๋์์ผ๋ฉฐ ํ์ฌ 1๊ฐ์ ๋ฉ์์ง๊ฐ ๋ค์ณ์ ธ ์์ต๋๋ค. ๋ธ๋ก์ปค XNUMX์ ๋จ XNUMX์ด ๋ค์ณ์ก์ต๋๋ค. ์ฐ๋ฆฌ์ ํ๋ก๋์๋ ๋ฆฌ๋๊ฐ ๊ธฐ๋ค๋ฆฌ์ง ์๋ ๋๋ฆฌ๊ฑฐ๋ ์ฃฝ์ ์ถ์ข ์์ ์ค๋ฒํค๋ ์์ด ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ์ ์ํ๊ฒ ์๋ต์ ๋ฐ์ต๋๋ค.
์. 7. ์ธ ๊ฐ์ ๋ณต์ ๋ณธ์ด ์๋ ISR
๋ธ๋ก์ปค 2๊ฐ ์คํจํ๊ณ ์์ฐ์์๊ฒ ์ฐ๊ฒฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฆฌ๋์ญ์ด ๋ธ๋ก์ปค 1๋ก ์ ๋ฌ๋ ํ 123๊ฐ์ ๋ฉ์์ง๊ฐ ์์ค๋ฉ๋๋ค. ๋ธ๋ก์ปค 1์ ํ๋ก์ด๋ ISR์ ์ผ๋ถ์์ง๋ง ๋จ์ด์ก์ ๋ ๋ฆฌ๋์ ์์ ํ ๋๊ธฐํ๋์ง ์์์ต๋๋ค.
์. 8. ์ถฉ๋์ด ๋ฐ์ํ๋ฉด ๋ฉ์์ง๊ฐ ์์ค๋ฉ๋๋ค.
๊ตฌ์ฑ ์ค bootstrap.์๋ฒ ์ ์กฐ์ ์ฒด์๋ ์ฌ๋ฌ ๋ธ๋ก์ปค๊ฐ ๋์ด๋์ด ์์ผ๋ฉฐ ์๋ก์ด ์น์ ๋ฆฌ๋์ธ ๋ค๋ฅธ ๋ธ๋ก์ปค์๊ฒ ์์ฒญํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ธ๋ก์ปค 1์ ๋ํ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ๊ณ์ํด์ ๋ฉ์์ง๋ฅผ ๋ณด๋ ๋๋ค.
์. 9. ์ ์ ํด์ ํ ๋ฉ์์ง ๋ณด๋ด๊ธฐ๊ฐ ์ฌ๊ฐ๋ฉ๋๋ค.
๋ธ๋ก์ปค 3์ ํจ์ฌ ๋ค์ณ์ ธ ์์ต๋๋ค. ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ํ์ง๋ง ๋๊ธฐํํ ์ ์์ต๋๋ค. ์ด๋ ๋ธ๋ก์ปค ๊ฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ ์๋ ์ ํ, ์ ์ฅ ๋ฌธ์ ๋ฑ์ผ๋ก ์ธํด ๋ฐ์ํ ์ ์์ต๋๋ค. ISR์์ ์ ๊ฑฐ๋ฉ๋๋ค. ์ด์ ISR์ ํ๋์ ๋ณต์ ๋ณธ, ์ฆ ๋ฆฌ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค! ์ ์กฐ์ ์ฒด๋ ๊ณ์ํด์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ํ์ธ ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๋ค.
์. 10. ๋ธ๋ก์ปค 3์ ํ๋ก์ด๊ฐ ISR์์ ์ ๊ฑฐ๋ฉ๋๋ค.
๋ธ๋ก์ปค 1์ด ์ค๋จ๋๊ณ 3๊ฐ์ ๋ฉ์์ง๊ฐ ์์ค๋๋ฉด์ ๋ฆฌ๋์ญ ์ญํ ์ด ๋ธ๋ก์ปค 15286์ผ๋ก ๋์ด๊ฐ๋๋ค! ์ ์กฐ์ ์ฒด๋ ์ฐ๊ฒฐ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๋ค. ISR ์ธ๋ถ์ ๋ฆฌ๋๋ก์ ์ ํ์ ๋ค์ ์ค์ ์ผ๋ก ์ธํด ๊ฐ๋ฅํ์ต๋๋ค. unclean.leader.election.enable=true. ์ ์ค์น๋์ด ์๋ ๊ฒฝ์ฐ ๊ทธ๋ฆ๋์ด๋ฉด ์ ํ์ด ๋ฐ์ํ์ง ์๊ณ ๋ชจ๋ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์ฒญ์ด ๊ฑฐ๋ถ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ, ๋ธ๋ก์ปค 1์ด ๋ณต์ ๋ณธ์ ๊ทธ๋๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๋์์ฌ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ธ๋ก์ปค XNUMX์ด ๋ค์ ๋ฆฌ๋์ญ์ ๋งก๊ฒ ๋ฉ๋๋ค.
์. 11. ๋ธ๋ก์ปค 1์ด ๋์ด์ง๋๋ค. ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ๋ง์ ์์ ๋ฉ์์ง๊ฐ ์์ค๋ฉ๋๋ค.
์์ฐ์๋ ๋ง์ง๋ง ๋ธ๋ก์ปค์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ์ด์ ๊ทธ๊ฐ ์น์ ์ ๋ฆฌ๋์์ ํ์ธํฉ๋๋ค. ๊ทธ๋ ๋ธ๋ก์ปค 3์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ธฐ ์์ํฉ๋๋ค.
์. 12. ์ ์ ํด์ ํ ๋ค์ 0๋ฒ ๊ตฌ์ญ์ผ๋ก ๋ฉ์์ง๊ฐ ์ ์ก๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ์๋ก์ด ์ฐ๊ฒฐ์ ๊ตฌ์ถํ๊ณ ์๋ก์ด ๋ฆฌ๋๋ฅผ ์ฐพ๊ธฐ ์ํ ์งง์ ์ค๋จ ์ธ์๋ ์ ์กฐ์ ์ฒด๊ฐ ์ง์์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ์ด ๊ตฌ์ฑ์ ์ผ๊ด์ฑ(๋ฐ์ดํฐ ๋ณด์)์ ํฌ์ํ์ฌ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํฉ๋๋ค. Kafka๋ ์์ฒ ๊ฐ์ ๋ฉ์์ง๋ฅผ ์์์ง๋ง ๊ณ์ํด์ ์๋ก์ด ์ฐ๊ธฐ๋ฅผ ํ์ฉํ์ต๋๋ค.
Acks=all ๋ฐ ISR
์ด ์๋๋ฆฌ์ค๋ฅผ ๋ค์ ๋ฐ๋ณตํด ๋ณด๊ฒ ์ต๋๋ค. ์น์ธ=๋ชจ๋. ๋ธ๋ก์ปค 3์ ํ๊ท ๋๊ธฐ ์๊ฐ์ XNUMX์ด์ ๋๋ค. ์ ์กฐ์ ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ ๋ฉ์์ง๋ฅผ ๋ณด๋ ๋๋ค. ์น์ธ=๋ชจ๋, ์ด์ ๋น ๋ฅธ ์๋ต์ ๋ฐ์ง ๋ชปํฉ๋๋ค. ๋ฆฌ๋๋ ISR์ ๋ชจ๋ ๋ณต์ ๋ณธ์ ๋ฉ์์ง๊ฐ ์ ์ฅ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
์. 13. ์ธ ๊ฐ์ ๋ณต์ ๋ณธ์ด ์๋ ISR. ํ๋๋ ์๋๊ฐ ๋๋ ค ๋
น์์ด ์ง์ฐ๋ฉ๋๋ค.
2์ด์ ์ถ๊ฐ ์ง์ฐ ํ ๋ธ๋ก์ปค XNUMX๋ ack๋ฅผ ๋ณด๋ ๋๋ค. ์ด์ ๋ชจ๋ ๋ณต์ ๋ณธ์ด ์์ ํ ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
์. 14. ๋ชจ๋ ๋ณต์ ๋ณธ์ ๋ฉ์์ง๋ฅผ ์ ์ฅํ๊ณ ack๋ฅผ ๋ณด๋
๋๋ค.
์ด์ ๋ธ๋ก์ปค 3์ ๋์ฑ ๋ค์ณ์ ธ ISR์์ ์ ๊ฑฐ๋ฉ๋๋ค. ISR์ ๋๋ฆฐ ๋ณต์ ๋ณธ์ด ๋จ์ ์์ง ์๊ธฐ ๋๋ฌธ์ ์ง์ฐ ์๊ฐ์ด ํฌ๊ฒ ์ค์ด๋ญ๋๋ค. ์ด์ ๋ธ๋ก์ปค 2๋ ๋ธ๋ก์ปค 1๋ง ๊ธฐ๋ค๋ฆฌ๋ฉฐ ํ๊ท ์ง์ฐ ์๊ฐ์ 500ms์ ๋๋ค.
์. 15. ๋ธ๋ก์ปค 3์ ๋ณต์ ๋ณธ์ด ISR์์ ์ ๊ฑฐ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ธ๋ก์ปค 2๊ฐ ์คํจํ๊ณ ๋ฆฌ๋์ญ์ด ๋ฉ์์ง ์์ค ์์ด ๋ธ๋ก์ปค 1๋ก ์ ๋ฌ๋ฉ๋๋ค.
์. 16. ๋ธ๋ก์ปค 2 ํ๋ฝ
์ ์กฐ์ ์ฒด๋ ์๋ก์ด ๋ฆฌ๋๋ฅผ ์ฐพ์ ๊ทธ์๊ฒ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ธฐ ์์ํฉ๋๋ค. ์ด์ ISR์ด ํ๋์ ๋ณต์ ๋ณธ์ผ๋ก ๊ตฌ์ฑ๋๋ฏ๋ก ๋๊ธฐ ์๊ฐ์ด ๋์ฑ ๋จ์ถ๋ฉ๋๋ค! ๊ทธ๋ฌ๋ฏ๋ก ์ต์ ์ ์น์ธ=๋ชจ๋ ์ค๋ณต์ฑ์ ์ถ๊ฐํ์ง ์์ต๋๋ค.
์. 17. ๋ธ๋ก์ปค 1์ ๋ณต์ ๋ณธ์ด ๋ฉ์์ง ์์ค ์์ด ์ ๋๋ฅผ ์ฐจ์งํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ธ๋ก์ปค 1์ด ์ถฉ๋ํ๊ณ ๋ฆฌ๋๊ฐ 3๊ฐ์ ๋ฉ์์ง ์์ค๊ณผ ํจ๊ป ๋ธ๋ก์ปค 14238์ผ๋ก ์ด๋ํฉ๋๋ค!
์. 18. ๋ธ๋ก์ปค 1์ ์ฌ๋ง ๋ฐ ๋ถ๊ฒฐํ ์ค์ ์ผ๋ก ์ธํ ๋ฆฌ๋์ญ ์ ํ์ผ๋ก ์ธํด ๊ด๋ฒ์ํ ๋ฐ์ดํฐ ์์ค ๋ฐ์
์ต์ ์ ์ค์นํ ์ ์์ต๋๋ค ๋ถ์ ํ.๋ฆฌ๋.์ ๊ฑฐ.ํ์ฑํ ์๋ฏธ์ ์ฐธ๋. ๊ธฐ๋ณธ์ ์ผ๋ก๋ ๋์ผํฉ๋๋ค. ๊ทธ๋ฆ๋. ์ค์ ์น์ธ=๋ชจ๋ ั unclean.leader.election.enable=true ์ผ๋ถ ์ถ๊ฐ๋ ๋ฐ์ดํฐ ๋ณด์๊ณผ ํจ๊ป ์ ๊ทผ์ฑ์ ์ ๊ณตํฉ๋๋ค. ํ์ง๋ง ๋ณด์๋ค์ํผ ๋ฉ์์ง๋ ์ฌ์ ํ ์์ค๋ ์ ์์ต๋๋ค.
ํ์ง๋ง ๋ฐ์ดํฐ ๋ณด์์ ๊ฐํํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ๋น์ ์ ๋ฃ์ ์ ์์ต๋๋ค unclean.leader.election.enable = ๊ฑฐ์ง, ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ๋ฐ๋์ ๋ฐ์ดํฐ ์์ค๋ก๋ถํฐ ์ฐ๋ฆฌ๋ฅผ ๋ณดํธํ์ง๋ ์์ต๋๋ค. ๋ฆฌ๋๊ฐ ์ฐ๋ฌ์ ธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ๊ฐ ๊ฒฝ์ฐ ๋ฉ์์ง๋ ์ฌ์ ํ ์์ค๋๋ฉฐ ๊ด๋ฆฌ์๊ฐ ์ํฉ์ ๋ณต์ํ ๋๊น์ง ๊ฐ์ฉ์ฑ๋ ์์ค๋ฉ๋๋ค.
๋ชจ๋ ๋ฉ์์ง๊ฐ ์ค๋ณต๋๋์ง ํ์ธํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ น์์ ์ญ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ ์ด๋ ๋ธ๋ก์ปค ์ ์ฅ์์๋ ๋ ๊ฐ ์ด์์ ๋์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ดํฐ ์์ค์ด ๊ฐ๋ฅํฉ๋๋ค.
Acks=all, min.insync.replicas ๋ฐ ISR
์ฃผ์ ๊ตฌ์ฑ ํฌํจ min.insync.replicas ๋ฐ์ดํฐ ๋ณด์ ์์ค์ ๋์ด๊ณ ์์ต๋๋ค. ์ด์ ์๋๋ฆฌ์ค์ ๋ง์ง๋ง ๋ถ๋ถ์ ๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. min.insync.replicas=2.
๋ฐ๋ผ์ ๋ธ๋ก์ปค 2์๋ ๋ณต์ ๋ณธ ๋ฆฌ๋๊ฐ ์๊ณ ๋ธ๋ก์ปค 3์ ํ๋ก์ด๋ ISR์์ ์ ๊ฑฐ๋ฉ๋๋ค.
์. 19. ๋ ๋ณต์ ๋ณธ์ ISR
๋ธ๋ก์ปค 2๊ฐ ์คํจํ๊ณ ๋ฆฌ๋์ญ์ด ๋ฉ์์ง ์์ค ์์ด ๋ธ๋ก์ปค 1๋ก ์ ๋ฌ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ISR์ ๋จ ํ๋์ ๋ณต์ ๋ณธ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด๋ ๋ ์ฝ๋๋ฅผ ์์ ํ ์ ์๋ ์ต์ ๊ฐ์๋ฅผ ์ถฉ์กฑํ์ง ๋ชปํ๋ฏ๋ก ๋ธ๋ก์ปค๋ ์ฐ๊ธฐ ์๋์ ์ค๋ฅ๋ก ์๋ตํฉ๋๋ค. ์ถฉ๋ถํ์ง ์์ ๋ณต์ ๋ณธ.
์. 20. ISR ์๊ฐ min.insync.replicas์ ์ง์ ๋ ๊ฒ๋ณด๋ค XNUMX๊ฐ ์ ์ต๋๋ค.
์ด ๊ตฌ์ฑ์ ์ผ๊ด์ฑ์ ์ํด ๊ฐ์ฉ์ฑ์ ํฌ์ํฉ๋๋ค. ๋ฉ์์ง๋ฅผ ์น์ธํ๊ธฐ ์ ์ ๋ฉ์์ง๊ฐ ์ต์ํ ๋ ๊ฐ์ ๋ณต์ ๋ณธ์ ๊ธฐ๋ก๋์๋์ง ํ์ธํฉ๋๋ค. ์ด๋ ์ ์กฐ์ ์ฒด์๊ฒ ํจ์ฌ ๋ ๋ง์ ์ ๋ขฐ๋ฅผ ์ค๋๋ค. ์ฌ๊ธฐ์ ๋ฉ์์ง ์์ค์ ๋ฉ์์ง๊ฐ ์ถ๊ฐ ํ๋ก์ด์ ๋ณต์ ๋ ๋๊น์ง ์งง์ ๊ฐ๊ฒฉ์ผ๋ก ๋ ๊ฐ์ ๋ณต์ ๋ณธ์ด ๋์์ ์คํจํ๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํ๋ฉฐ ๊ทธ๋ด ๊ฐ๋ฅ์ฑ์ ์์ต๋๋ค. ํ์ง๋ง ํธ์ง์ฆ์ด ์ฌํ ์ฌ๋์ด๋ผ๋ฉด ๋ณต์ ์ธ์๋ฅผ 5๋ก ์ค์ ํ ์ ์์ต๋๋ค. min.insync.replicas by 3. ์ฌ๊ธฐ์ ์ธ ๋ช ์ ๋ธ๋ก์ปค๊ฐ ๋์์ ๋จ์ด์ ธ์ผ ๊ธฐ๋ก์ ์๊ฒ ๋ฉ๋๋ค! ๋ฌผ๋ก ์ด๋ฌํ ์์ ์ฑ์ ๋ํ ๋๊ฐ๋ ์ถ๊ฐ ๋๊ธฐ ์๊ฐ์ผ๋ก ๋ฐ์ํฉ๋๋ค.
๋ฐ์ดํฐ ๋ณด์์ ์ํด ์ ๊ทผ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ
์์์ ๊ฐ์ด
- ๊ฒ์์๊ฐ ๋จ์ํ ์ค๋ฅ๋ฅผ ๋ฐํํ๊ณ ์ ์คํธ๋ฆผ ์๋น์ค๋ ์ฌ์ฉ์๊ฐ ๋์ค์ ๋ค์ ์๋ํ๋๋ก ํ ์ ์์ต๋๊น?
- ๊ฒ์์๊ฐ ๋์ค์ ๋ค์ ์๋ํ๊ธฐ ์ํด ๋ฉ์์ง๋ฅผ ๋ก์ปฌ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ์ ์์ต๋๊น?
๋๋ต์ด '์๋์'์ธ ๊ฒฝ์ฐ ๊ฐ์ฉ์ฑ์ ์ต์ ํํ๋ฉด ๋ฐ์ดํฐ ๋ณด์์ด ํฅ์๋ฉ๋๋ค. ๊ธฐ๋กํ์ง ์๋ ๋์ ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ์ ํํ๋ฉด ๋ฐ์ดํฐ ์์ค์ด ์ค์ด๋ญ๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๊ฒ์ ๊ท ํ์ ์ฐพ๋ ๊ฒ์ผ๋ก ๊ท๊ฒฐ๋๋ฉฐ ๊ฒฐ์ ์ ํน์ ์ํฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
ISR์ ์๋ฏธ
ISR ์ ํ๊ตฐ์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ๋ณด์๊ณผ ๋๊ธฐ ์๊ฐ ๊ฐ์ ์ต์ ์ ๊ท ํ์ ์ ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋๋ถ๋ถ์ ๋ณต์ ๋ณธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ์ฌ ์ง์ฐ ์๊ฐ ์ธก๋ฉด์์ ์๋ํ์ง ์๊ฑฐ๋ ๋๋ฆฐ ๋ณต์ ๋ณธ์ ์ํฅ์ ์ต์ํํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์๋ฏธ๋ฅผ ์ค์ค๋ก ์ ํํฉ๋๋ค ๋ณต์ .์ง์ฐ.์๊ฐ.์ต๋.ms ๊ทํ์ ํ์์ ๋ฐ๋ผ. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ๋งค๊ฐ๋ณ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ํ์ฉํ ์ง์ฐ ์๊ฐ์ ์๋ฏธํฉ๋๋ค. ์น์ธ=๋ชจ๋. ๊ธฐ๋ณธ๊ฐ์ XNUMX์ด์ ๋๋ค. ๋๋ฌด ๊ธธ๋ค๋ฉด ์ค์ฌ๋ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํ๋ก์ด๊ฐ ๋ ์์ฃผ ์ ๊ฑฐ๋๊ณ ์ถ๊ฐ๋๋ฏ๋ก ISR์ ๋ณ๊ฒฝ ๋น๋๊ฐ ์ฆ๊ฐํฉ๋๋ค.
RabbitMQ๋ ๋จ์ํ ๋ณต์ ๊ฐ ํ์ํ ๋ฏธ๋ฌ ์ธํธ์ ๋๋ค. ๋๋ฆฐ ๋ฏธ๋ฌ๋ ์ถ๊ฐ ๋๊ธฐ ์๊ฐ์ ๋ฐ์์ํค๊ณ , ๋ฐ๋ ๋ฏธ๋ฌ๋ ๊ฐ ๋ ธ๋์ ๊ฐ์ฉ์ฑ(๋ท ํฑ)์ ํ์ธํ๋ ํจํท์ด ์๋ตํ ๋๊น์ง ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค. ISR์ ์ด๋ฌํ ๋๊ธฐ ์๊ฐ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ๋ ํฅ๋ฏธ๋ก์ด ๋ฐฉ๋ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ISR์ ๋ฆฌ๋๋ก๋ง ์ถ์๋ ์ ์์ผ๋ฏ๋ก ์ค๋ณต์ฑ์ ์์ ์ํ์ด ์์ต๋๋ค. ์ด๋ฌํ ์ํ์ ํผํ๋ ค๋ฉด ๋ค์ ์ค์ ์ ์ฌ์ฉํ์ญ์์ค. min.insync.replicas.
ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ๋ณด์ฅ
์ค์ ์์ bootstrap.์๋ฒ ์์ฐ์์ ์๋น์๋ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ ์ํด ์ฌ๋ฌ ๋ธ๋ก์ปค๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ํ ๋ ธ๋๊ฐ ๋ค์ด๋๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ์ ์ด ์ ์๋ ์ฌ๋ถ์ ๋ ธ๋๊ฐ ์ฌ๋ฌ ๊ฐ ๋จ๊ฒ ๋๋ค๋ ์์ด๋์ด์ ๋๋ค. ์ด๋ ๋ฐ๋์ ์น์ ๋ฆฌ๋์ผ ํ์๋ ์์ผ๋ฉฐ ๋จ์ํ ์ด๊ธฐ ๋ก๋ฉ์ ์ํ ๋ฐํ์ผ ๋ฟ์ ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ฝ๊ธฐ/์ฐ๊ธฐ ํํฐ์ ๋ฆฌ๋๋ฅผ ํธ์คํ ํ๋ ๋ ธ๋๋ฅผ ๋ฌผ์ด๋ณผ ์ ์์ต๋๋ค.
RabbitMQ์์ ํด๋ผ์ด์ธํธ๋ ๋ชจ๋ ๋ ธ๋์ ์ฐ๊ฒฐํ ์ ์์ผ๋ฉฐ ๋ด๋ถ ๋ผ์ฐํ ์ ํ์ํ ๊ณณ์ผ๋ก ์์ฒญ์ ๋ณด๋ ๋๋ค. ์ด๋ RabbitMQ ์์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ค์นํ ์ ์์์ ์๋ฏธํฉ๋๋ค. Kafka์์๋ ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ํํฐ์ ๋ฆฌ๋๋ฅผ ํธ์คํ ํ๋ ๋ ธ๋์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ํฉ์์๋ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ค์นํ ์ ์์ต๋๋ค. ๋ชฉ๋ก bootstrap.์๋ฒ ์ฅ์ ๋ฐ์ ํ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฐ๋ฅธ ๋ ธ๋์ ์ก์ธ์คํ๊ณ ์ฐพ์ ์ ์๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
Kafka ํฉ์ ์ํคํ ์ฒ
์ง๊ธ๊น์ง ์ฐ๋ฆฌ๋ ํด๋ฌ์คํฐ๊ฐ ๋ธ๋ก์ปค์ ๋ชฐ๋ฝ์ ์ด๋ป๊ฒ ํ์ตํ๊ณ ์๋ก์ด ๋ฆฌ๋๊ฐ ์ ์ถ๋๋์ง ๊ณ ๋ คํ์ง ์์์ต๋๋ค. Kafka๊ฐ ๋คํธ์ํฌ ํํฐ์ ์์ ์๋ํ๋ ๋ฐฉ์์ ์ดํดํ๋ ค๋ฉด ๋จผ์ ํฉ์ ์ํคํ ์ฒ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค.
๊ฐ Kafka ํด๋ฌ์คํฐ๋ ์์คํ ์ด ํน์ ์ํ์ ๋ํ ํฉ์์ ๋๋ฌํ ์ ์๋๋ก ํ๋ ๋ถ์ฐ ํฉ์ ์๋น์ค์ธ Zookeeper ํด๋ฌ์คํฐ์ ํจ๊ป ๋ฐฐํฌ๋์ด ๊ฐ์ฉ์ฑ๋ณด๋ค ์ผ๊ด์ฑ์ ์ฐ์ ์ํฉ๋๋ค. ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์ ์ ์น์ธํ๋ ค๋ฉด Zookeeper ๋ ธ๋ ๋๋ค์์ ๋์๊ฐ ํ์ํฉ๋๋ค.
Zookeeper๋ ํด๋ฌ์คํฐ ์ํ๋ฅผ ์ ์ฅํฉ๋๋ค.
- ์ฃผ์ , ์น์ , ๊ตฌ์ฑ, ํ์ฌ ๋ฆฌ๋ ๋ณต์ ๋ณธ, ๊ธฐ๋ณธ ๋ณต์ ๋ณธ ๋ชฉ๋ก์ ๋๋ค.
- ํด๋ฌ์คํฐ ๊ตฌ์ฑ์. ๊ฐ ๋ธ๋ก์ปค๋ Zookeeper ํด๋ฌ์คํฐ๋ฅผ pingํฉ๋๋ค. ์ง์ ๋ ์๊ฐ ๋ด์ ํ์ ๋ฐ์ง ๋ชปํ๋ฉด Zookeeper๋ ๋ธ๋ก์ปค๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ผ๋ก ๊ธฐ๋กํฉ๋๋ค.
- ์ปจํธ๋กค๋ฌ์ ๊ธฐ๋ณธ ๋ ธ๋์ ์๋น ๋ ธ๋๋ฅผ ์ ํํฉ๋๋ค.
์ปจํธ๋กค๋ฌ ๋ ธ๋๋ ๋ณต์ ๋ณธ ๋ฆฌ๋ ์ ํ์ ๋ด๋นํ๋ Kafka ๋ธ๋ก์ปค ์ค ํ๋์ ๋๋ค. Zookeeper๋ ํด๋ฌ์คํฐ ๋ฉค๋ฒ์ญ ๋ฐ ์ฃผ์ ๋ณ๊ฒฝ์ ๋ํ ์๋ฆผ์ ์ปจํธ๋กค๋ฌ์ ๋ณด๋ด๊ณ ์ปจํธ๋กค๋ฌ๋ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ์กฐ์น๋ฅผ ์ทจํด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, 3๊ฐ์ ํํฐ์ ๊ณผ XNUMX์ ๋ณต์ ํฉํฐ๊ฐ ์๋ ์ ์ฃผ์ ๋ฅผ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ปจํธ๋กค๋ฌ๋ ๋ธ๋ก์ปค ๊ฐ์ ๋ฆฌ๋๋ฅผ ์ต์ ์ผ๋ก ๋ฐฐํฌํ๊ธฐ ์ํด ๊ฐ ํํฐ์ ์ ๋ํ ๋ฆฌ๋๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
๊ฐ ์น์ ์ปจํธ๋กค๋ฌ์ ๋ํด ๋ค์์ ์ํํฉ๋๋ค.
- ISR ๋ฐ ๋ฆฌ๋์ ๋ํ Zookeeper์ ์ ๋ณด๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
- ์ด ํํฐ์ ์ ๋ณต์ ๋ณธ์ ํธ์คํ ํ๋ ๊ฐ ๋ธ๋ก์ปค์ LeaderAndISRCommand๋ฅผ ์ ์กํ์ฌ ๋ธ๋ก์ปค์๊ฒ ISR ๋ฐ ๋ฆฌ๋์ ๋ํด ์๋ฆฝ๋๋ค.
๋ฆฌ๋๊ฐ ์๋ ๋ธ๋ก์ปค๊ฐ ๋จ์ด์ง๋ฉด Zookeeper๋ ์ปจํธ๋กค๋ฌ์ ์๋ฆผ์ ๋ณด๋ด๊ณ ์ ๋ฆฌ๋๋ฅผ ์ ํํฉ๋๋ค. ์ด๋ฒ์๋ ์ปจํธ๋กค๋ฌ๋ ๋จผ์ Zookeeper๋ฅผ ์ ๋ฐ์ดํธํ ๋ค์ ๊ฐ ๋ธ๋ก์ปค์ ๋ฆฌ๋์ญ ๋ณ๊ฒฝ์ ์๋ฆฌ๋ ๋ช ๋ น์ ๋ณด๋ ๋๋ค.
๊ฐ ๋ฆฌ๋๋ ISR ๋ชจ์ง์ ๋ด๋นํฉ๋๋ค. ์ค์ ๋ณต์ .์ง์ฐ.์๊ฐ.์ต๋.ms ๊ฑฐ๊ธฐ์ ๋ค์ด๊ฐ ์ฌ๋์ ๊ฒฐ์ ํฉ๋๋ค. ISR์ด ๋ณ๊ฒฝ๋๋ฉด ๋ฆฌ๋๋ ์๋ก์ด ์ ๋ณด๋ฅผ Zookeeper๋ก ์ ์กํฉ๋๋ค.
Zookeeper๋ ์ฅ์ ๋ฐ์ ์ ๊ฒฝ์์ง์ด ์ํํ๊ฒ ์๋ก์ด ๋ฆฌ๋๋ก ์ ํ๋ ์ ์๋๋ก ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์ ๋ณด๋ฅผ ํญ์ ๋ฐ์ต๋๋ค.
์. 21. ์นดํ์นด ํฉ์
๋ณต์ ํ๋กํ ์ฝ
๋ณต์ ์ ์ธ๋ถ ์ฌํญ์ ์ดํดํ๋ฉด ์ ์ฌ์ ์ธ ๋ฐ์ดํฐ ์์ค ์๋๋ฆฌ์ค๋ฅผ ๋ ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ํ๋ง ์ฟผ๋ฆฌ, LEO(๋ก๊ทธ ๋ ์คํ์ ) ๋ฐ HW(ํ์ด์ํฐ ๋งํฌ)
์ฐ๋ฆฌ๋ ํ๋ก์ด๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฆฌ๋์๊ฒ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ ๊ณ ๋ คํ์ต๋๋ค. ๊ธฐ๋ณธ ๊ฐ๊ฒฉ์ 500ms์ ๋๋ค. ์ด๋ RabbitMQ ๋ณต์ ๊ฐ ํ ๋ฏธ๋ฌ๊ฐ ์๋ ๋ง์คํฐ์ ์ํด ์์๋๋ค๋ ์ ์์ RabbitMQ์ ๋ค๋ฆ ๋๋ค. ๋ง์คํฐ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฏธ๋ฌ์ ํธ์ํฉ๋๋ค.
๋ฆฌ๋์ ๋ชจ๋ ํ๋ก์ด๋ LEO(Log End Offset) ๋ฐ HW(Highwater) ๋ ์ด๋ธ์ ์ ์ฅํฉ๋๋ค. LEO ๋งํฌ๋ ๋ก์ปฌ ๋ณต์ ๋ณธ์ ๋ง์ง๋ง ๋ฉ์์ง ์คํ์ ์ ์ ์ฅํ๊ณ , HW๋ ๋ง์ง๋ง ์ปค๋ฐ์ ์คํ์ ์ ๋ณด์ ํฉ๋๋ค. ์ปค๋ฐ ์ํ์ ๊ฒฝ์ฐ ๋ฉ์์ง๋ ๋ชจ๋ ISR ๋ณต์ ๋ณธ์์ ์ง์๋์ด์ผ ํฉ๋๋ค. ์ด๋ LEO๊ฐ ์ผ๋ฐ์ ์ผ๋ก HW๋ณด๋ค ์ฝ๊ฐ ์์ ์์์ ์๋ฏธํฉ๋๋ค.
๋ฆฌ๋๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ผ๋ฉด ์ด๋ฅผ ๋ก์ปฌ์ ์ ์ฅํฉ๋๋ค. ํ๋ก์ด๋ ์์ ์ LEO๋ฅผ ์ ์กํ์ฌ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ฆฌ๋๋ ์ด LEO์์ ์์ํ์ฌ ์ผ๊ด ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ํ์ฌ HW๋ ์ ์กํฉ๋๋ค. ๋ฆฌ๋๋ ๋ชจ๋ ๋ณต์ ๋ณธ์ด ์ง์ ๋ ์คํ์ ์ ๋ฉ์์ง๋ฅผ ์ ์ฅํ๋ค๋ ์ ๋ณด๋ฅผ ๋ฐ์ผ๋ฉด HW ๋งํฌ๋ฅผ ์ด๋ํฉ๋๋ค. ๋ฆฌ๋๋ง์ด HW๋ฅผ ์ด๋ํ ์ ์์ผ๋ฏ๋ก ๋ชจ๋ ํ๋ก์ด๋ ์์ฒญ์ ๋ํ ์๋ต์ ํ์ฌ ๊ฐ์ ์ ์ ์์ต๋๋ค. ์ด๋ ํ๋ก์ด๊ฐ ๋ฉ์์ง์ HW ์ง์ ๋ชจ๋์์ ๋ฆฌ๋๋ณด๋ค ๋ค์ฒ์ง ์ ์์์ ์๋ฏธํฉ๋๋ค. ์๋น์๋ ํ์ฌ HW๊น์ง๋ง ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๋ค.
"์ง์ํ"์ ๋์คํฌ๊ฐ ์๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ๋ก๋๋ค๋ ์๋ฏธ์ ๋๋ค. ์ฑ๋ฅ์ ์ํด Kafka๋ ํน์ ๊ฐ๊ฒฉ์ผ๋ก ๋์คํฌ์ ๋๊ธฐํํฉ๋๋ค. RabbitMQ์๋ ์ด๋ฌํ ๊ฐ๊ฒฉ์ด ์์ง๋ง ๋ง์คํฐ์ ๋ชจ๋ ๋ฏธ๋ฌ๊ฐ ๋์คํฌ์ ๋ฉ์์ง๋ฅผ ์ด ํ์๋ง ๊ฒ์์์๊ฒ ์น์ธ์ ๋ณด๋ ๋๋ค. Kafka ๊ฐ๋ฐ์๋ ์ฑ๋ฅ์์ ์ด์ ๋ก ๋ฉ์์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ๋ก๋์๋ง์ ack๋ฅผ ๋ณด๋ด๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. Kafka๋ ์ค๋ณต์ฑ์ด ํ์ธ๋ ๋ฉ์์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ์๋ง ์ ์ ์ ์ฅํ๋ ์ํ์ ์์ํ๋ค๊ณ ํ์ ํฉ๋๋ค.
๋ฆฌ๋ ์คํจ
๋ฆฌ๋๊ฐ ๋จ์ด์ง๋ฉด Zookeeper๋ ์ปจํธ๋กค๋ฌ์ ์ด๋ฅผ ์๋ฆฌ๊ณ ์ ๋ฆฌ๋ ๋ณต์ ๋ณธ์ ์ ํํฉ๋๋ค. ์๋ก์ด ๋ฆฌ๋๋ LEO์ ๋ฐ๋ผ ์๋ก์ด HW ๋งํฌ๋ฅผ ์ค์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ถ์ข ์๋ค์ ์๋ก์ด ๋ฆฌ๋์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐ์ต๋๋ค. Kafka ๋ฒ์ ์ ๋ฐ๋ผ ์ถ์ข ์๋ ๋ ๊ฐ์ง ์๋๋ฆฌ์ค ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
- ๋ก์ปฌ ๋ก๊ทธ๋ฅผ ์๋ ค์ง HW๋ก ์๋ฅด๊ณ ์ด ํ์ ์ดํ์ ๋ฉ์์ง์ ๋ํ ์์ฒญ์ ์ ๋ฆฌ๋์๊ฒ ๋ณด๋ ๋๋ค.
- ๋ฆฌ๋๋ก ์ ์ถ๋ ๋น์์ HW๋ฅผ ์์๋ด๊ธฐ ์ํด ๋ฆฌ๋์๊ฒ ์์ฒญ์ ๋ณด๋ธ ๋ค์ ๋ก๊ทธ๋ฅผ ์ด ์คํ์ ์ผ๋ก ์๋ฆ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ์คํ์ ์์ ์์ํ์ฌ ์ฃผ๊ธฐ์ ์ธ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ๋ง๋ค๊ธฐ ์์ํฉ๋๋ค.
ํ๋ก์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ๋ก๊ทธ๋ฅผ ์๋ผ์ผ ํ ์ ์์ต๋๋ค.
- ๋ฆฌ๋๊ฐ ์คํจํ๋ฉด Zookeeper์ ๋ฑ๋ก๋ ISR ์ธํธ์ ์ฒซ ๋ฒ์งธ ํ๋ก์ด๊ฐ ์ ๊ฑฐ์์ ์น๋ฆฌํ๊ณ ๋ฆฌ๋๊ฐ ๋ฉ๋๋ค. ISR์ ๋ชจ๋ ํ๋ก์๋ "๋๊ธฐํ"๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ง๋ง ์ด์ ๋ฆฌ๋๋ก๋ถํฐ ๋ชจ๋ ๋ฉ์์ง์ ์ฌ๋ณธ์ ๋ฐ์ง ๋ชปํ์ ์๋ ์์ต๋๋ค. ์ถ์ฒ ํ๋ก์๊ฐ ์ต์ ์ฌ๋ณธ์ ๊ฐ๊ณ ์์ง ์์ ์๋ ์์ต๋๋ค. Kafka๋ ๋ณต์ ๋ณธ ๊ฐ์ ์ฐจ์ด๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ๋ฐ๋ผ์ ๋ถ์ผ์น๋ฅผ ํผํ๊ธฐ ์ํด ๊ฐ ํ๋ก์ด๋ ์์ ์ ๋ก๊ทธ๋ฅผ ์ ์ถ ๋น์ ์๋ก์ด ๋ฆฌ๋์ HW ๊ฐ์ผ๋ก ์ค์ฌ์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ์ค์ ํ๋ ๋ ๋ค๋ฅธ ์ด์ ์ ๋๋ค. ์น์ธ=๋ชจ๋ ์ผ๊ด์ฑ์ ์ํด ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ๋ฉ์์ง๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋์คํฌ์ ๊ธฐ๋ก๋ฉ๋๋ค. ๋ชจ๋ ํด๋ฌ์คํฐ ๋ ธ๋๊ฐ ๋์์ ์คํจํ๋ฉด ์๋ก ๋ค๋ฅธ ์คํ์ ์ ๊ฐ์ง ๋ณต์ ๋ณธ์ด ๋์คํฌ์ ์ ์ฅ๋ฉ๋๋ค. ๋ธ๋ก์ปค๊ฐ ๋ค์ ์จ๋ผ์ธ ์ํ๊ฐ ๋๋ฉด ์ ์ถ๋ ์ ๋ฆฌ๋๋ ๋ค๋ฅธ ๋ฆฌ๋๋ณด๋ค ๋จผ์ ๋์คํฌ์ ์ ์ฅ๋์๊ธฐ ๋๋ฌธ์ ์ถ์ข ์ ๋ค์ ์์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
ํด๋ฌ์คํฐ์์ ์ฌ๊ฒฐํฉ
ํด๋ฌ์คํฐ์ ๋ค์ ์ฐธ๊ฐํ ๋ ๋ณต์ ๋ณธ์ ๋ฆฌ๋๊ฐ ์คํจํ ๋์ ๋์ผํ ์์ ์ ์ํํฉ๋๋ค. ์ฆ, ๋ฆฌ๋์ ๋ณต์ ๋ณธ์ ํ์ธํ๊ณ ํด๋น ๋ก๊ทธ๋ฅผ ํด๋น HW(์ ํ ์)๋ก ์๋ฆ ๋๋ค. ์ด์ ๋นํด RabbitMQ๋ ์ฌ๊ฒฐํฉ๋ ๋ ธ๋๋ฅผ ์์ ํ ์๋ก์ด ๋ ธ๋๋ก ๋์ผํ๊ฒ ์ทจ๊ธํฉ๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๋ธ๋ก์ปค๋ ๊ธฐ์กด ์ํ๋ฅผ ๋ชจ๋ ์ญ์ ํฉ๋๋ค. ์๋ ๋๊ธฐํ๊ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ ๋ง์คํฐ๋ "์ ์ธ๊ณ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฒ ํ๋" ๋ฐฉ๋ฒ์ผ๋ก ํ์ฌ ์ปจํ ์ธ ๋ฅผ ์์ ํ ์ ๋ฏธ๋ฌ์ ๋ณต์ ํด์ผ ํฉ๋๋ค. ๋ง์คํฐ๋ ์ด ์์ ์ค์ ์ฝ๊ธฐ ๋๋ ์ฐ๊ธฐ ์์ ์ ํ์ฉํ์ง ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๋๊ท๋ชจ ๋๊ธฐ์ด์ ๋ฌธ์ ๋ฅผ ์ผ์ผํต๋๋ค.
Kafka๋ ๋ถ์ฐ ๋ก๊ทธ์ด๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ํ์์ ์ ๊ฑฐ๋๋ RabbitMQ ํ๋ณด๋ค ๋ ๋ง์ ๋ฉ์์ง๋ฅผ ์ ์ฅํฉ๋๋ค. ํ์ฑ ๋๊ธฐ์ด์ ์๋์ ์ผ๋ก ์๊ฒ ์ ์ง๋์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ Kafka๋ ๋ฉฐ์น ๋๋ ๋ช ์ฃผ ๊ธฐ๊ฐ์ ์ค์ ํ ์ ์๋ ์์ฒด ๋ณด์กด ์ ์ฑ ์ด ์๋ ๋ก๊ทธ์ ๋๋ค. ๋๊ธฐ์ด ์ฐจ๋จ ๋ฐ ์ ์ฒด ๋๊ธฐํ ์ ๊ทผ ๋ฐฉ์์ ๋ถ์ฐ ๋ก๊ทธ์๋ ์ ๋ ํ์ฉ๋์ง ์์ต๋๋ค. ๋์ Kafka ํ๋ก์ด๋ ์์ ์ ๋ณต์ฌ๋ณธ์ด ๋ฆฌ๋๋ณด๋ค ์์ ์๋ ๊ฒฝ์ฐ ๋ฆฌ๋์ HW(์ ์ถ ๋น์)์ ๋ํ ๋ก๊ทธ๋ฅผ ์๋ผ๋ ๋๋ค. ๋ ๊ฐ๋ฅ์ฑ ์๋ ๊ฒฝ์ฐ, ํ๋ก์ด๊ฐ ๋ค์ณ์ง๋ฉด ํ์ฌ LEO๋ถํฐ ์์ํ์ฌ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ์์ํ๊ธฐ ์์ํฉ๋๋ค.
์ ๊ท ๋๋ ์ฌ๊ฐ์ ๋ ํ๋ก์๋ ISR ์ธ๋ถ์์ ์์ํ๋ฉฐ ์ปค๋ฐ์ ์ฐธ์ฌํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ๋จ์ํ ๊ทธ๋ฃน๊ณผ ํจ๊ป ์ผํ๋ฉด์ ๋ฆฌ๋๋ฅผ ๋ฐ๋ผ์ก๊ณ ISR์ ๋ค์ด๊ฐ ๋๊น์ง ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๋ค. ์ข ์์ฑ์ด ์์ผ๋ฉฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฒ๋ฆด ํ์๊ฐ ์์ต๋๋ค.
์ฐ๊ฒฐ ๋๊น
Kafka์๋ RabbitMQ๋ณด๋ค ๋ ๋ง์ ๊ตฌ์ฑ ์์๊ฐ ์์ผ๋ฏ๋ก ํด๋ฌ์คํฐ ์ฐ๊ฒฐ์ด ๋์ด์ง ๋ ๋ ๋ณต์กํ ๋์ ์งํฉ์ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ Kafka๋ ์๋ ํด๋ฌ์คํฐ์ฉ์ผ๋ก ์ค๊ณ๋์์ผ๋ฏ๋ก ์๋ฃจ์ ์ด ๋งค์ฐ ์ ๊ณ ๋ ค๋์์ต๋๋ค.
๋ค์์ ๋ช ๊ฐ์ง ์ฐ๊ฒฐ ์คํจ ์๋๋ฆฌ์ค์ ๋๋ค.
- ์๋๋ฆฌ์ค 1: ์ถ์ข ์๋ ๋ฆฌ๋๋ฅผ ๋ณด์ง ๋ชปํ์ง๋ง ์ฌ์ ํ Zookeeper๋ฅผ ๋ด ๋๋ค.
- ์๋๋ฆฌ์ค 2: ๋ฆฌ๋๋ ์ถ์ข ์๋ฅผ ๋ณผ ์ ์์ง๋ง ์ฌ์ ํ Zookeeper๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ์๋๋ฆฌ์ค 3: ์ถ์ข ์๋ ๋ฆฌ๋๋ฅผ ๋ณผ ์ ์์ง๋ง ์ฌ์ก์ฌ๋ ๋ณผ ์ ์์ต๋๋ค.
- ์๋๋ฆฌ์ค 4: ๋ฆฌ๋๋ ์ถ์ข ์๋ฅผ ๋ณผ ์ ์์ง๋ง ์ฌ์ก์ฌ๋ ๋ณผ ์ ์์ต๋๋ค.
- ์๋๋ฆฌ์ค 5: Follower๋ ๋ค๋ฅธ Kafka ๋ ธ๋ ๋ฐ Zookeeper์ ์์ ํ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค.
- ์๋๋ฆฌ์ค 6: ๋ฆฌ๋๋ ๋ค๋ฅธ Kafka ๋ ธ๋ ๋ฐ Zookeeper์ ์์ ํ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค.
- ์๋๋ฆฌ์ค 7: Kafka ์ปจํธ๋กค๋ฌ ๋ ธ๋๋ ๋ค๋ฅธ Kafka ๋ ธ๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ์๋๋ฆฌ์ค 8: Kafka ์ปจํธ๋กค๋ฌ์ Zookeeper๊ฐ ํ์๋์ง ์์ต๋๋ค.
๊ฐ ์๋๋ฆฌ์ค์๋ ๊ณ ์ ํ ๋์์ด ์์ต๋๋ค.
์๋๋ฆฌ์ค 1: ํ๋ก์ด๋ ๋ฆฌ๋๋ฅผ ๋ณผ ์ ์์ง๋ง ์ฌ์ ํ Zookeeper๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์. 22. ์๋๋ฆฌ์ค 1: XNUMX๊ฐ ๋ณต์ ๋ณธ์ ISR
์ฐ๊ฒฐ ์คํจ๋ก ์ธํด ๋ธ๋ก์ปค 3์ด ๋ธ๋ก์ปค 1 ๋ฐ 2์์ ๋ถ๋ฆฌ๋์ง๋ง Zookeeper์์๋ ๋ถ๋ฆฌ๋์ง ์์ต๋๋ค. ๋ธ๋ก์ปค 3์ ๋ ์ด์ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค. ์๊ฐ์ด ์ง๋๊ณ ๋๋ฉด ๋ณต์ .์ง์ฐ.์๊ฐ.์ต๋.ms ISR์์ ์ ๊ฑฐ๋๋ฉฐ ๋ฉ์์ง ์ปค๋ฐ์ ์ฐธ์ฌํ์ง ์์ต๋๋ค. ์ฐ๊ฒฐ์ด ๋ณต์๋๋ฉด ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ์ฌ๊ฐํ๊ณ ๋ฆฌ๋๋ฅผ ๋ฐ๋ผ์ก์ ๋ ISR์ ์ฐธ์ฌํฉ๋๋ค. Zookeeper๋ ๊ณ์ํด์ ํ์ ์์ ํ๊ณ ๋ธ๋ก์ปค๊ฐ ์ด์ ์๊ณ ๊ฑด๊ฐํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์. 23. ์๋๋ฆฌ์ค 1: Replica.lag.time.max.ms ๊ฐ๊ฒฉ ๋ด์ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ด ์์ ๋์ง ์์ผ๋ฉด ๋ธ๋ก์ปค๊ฐ ISR์์ ์ ๊ฑฐ๋ฉ๋๋ค.
RabbitMQ์ ๊ฐ์ด ๋ถํ ๋ธ๋ ์ธ์ด๋ ๋ ธ๋ ์ ์ง๊ฐ ์์ต๋๋ค. ๋์ ์ค๋ณต์ฑ์ด ์ค์ด๋ญ๋๋ค.
์๋๋ฆฌ์ค 2: ๋ฆฌ๋๋ ํ๋ก์ด๋ฅผ ๋ณผ ์ ์์ง๋ง ์ฌ์ ํ Zookeeper๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์. 24. ์๋๋ฆฌ์ค 2. ๋ฆฌ๋์ ๋ ๋ช
์ ์ถ์ข
์
๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ๋์ด์ง๋ฉด ๋ฆฌ๋์ ํ๋ก์๊ฐ ๋ถ๋ฆฌ๋์ง๋ง ๋ธ๋ก์ปค๋ ์ฌ์ ํ Zookeeper๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์๋๋ฆฌ์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก ISR์ ์ถ์๋์ง๋ง ์ด๋ฒ์๋ ๋ชจ๋ ํ๋ก์ด๊ฐ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ ์ ์ก์ ์ค๋จํ๋ฏ๋ก ๋ฆฌ๋๋ง ์ถ์๋ฉ๋๋ค. ๋ค์ ๋งํ์ง๋ง, ๋ ผ๋ฆฌ์ ์ธ ๊ตฌ๋ถ์ ์์ต๋๋ค. ๋์ ์ฐ๊ฒฐ์ด ๋ณต์๋ ๋๊น์ง ์ ๋ฉ์์ง์ ๋ํ ์ค๋ณต์ฑ์ด ์์ค๋ฉ๋๋ค. Zookeeper๋ ๊ณ์ํด์ ํ์ ์์ ํ๋ฉฐ ๋ธ๋ก์ปค๊ฐ ์ด์ ์๊ณ ๊ฑด๊ฐํ๋ค๊ณ ๋ฏฟ์ต๋๋ค.
์. 25. ์๋๋ฆฌ์ค 2. ISR์ ๋ฆฌ๋๋ก๋ง ์ถ์๋์์ต๋๋ค.
์๋๋ฆฌ์ค 3. ํ๋ก์๋ ๋ฆฌ๋๋ฅผ ๋ณผ ์ ์์ง๋ง ์ฌ์ก์ฌ๋ ๋ณผ ์ ์์ต๋๋ค.
Follower๋ Zookeeper์ ๋ถ๋ฆฌ๋์ด ์์ง๋ง Leader๊ฐ ์๋ Broker์๋ ๋ถ๋ฆฌ๋์ด ์์ง ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํ๋ก์ด๋ ๊ณ์ํด์ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ํ๋ฉฐ ISR์ ํ์์ด ๋ฉ๋๋ค. Zookeeper๋ ๋ ์ด์ ํ์ ์์ ํ์ง ์๊ณ ๋ธ๋ก์ปค ์ถฉ๋์ ๋ฑ๋กํ์ง๋ง ํ๋ก์ด์ผ ๋ฟ์ด๋ฏ๋ก ๋ณต๊ตฌ ํ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.
์. 26. ์๋๋ฆฌ์ค 3: ํ๋ก์ด๊ฐ ๊ณ์ํด์ ๋ฆฌ๋์๊ฒ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ๋ณด๋
๋๋ค.
์๋๋ฆฌ์ค 4. ๋ฆฌ๋๋ ์ถ์ข ์๋ฅผ ๋ณผ ์ ์์ง๋ง ์ฌ์ก์ฌ๋ ๋ณผ ์ ์์ต๋๋ค.
์. 27. ์๋๋ฆฌ์ค 4. ๋ฆฌ๋์ ๋ ๋ช
์ ์ถ์ข
์
๋ฆฌ๋๋ Zookeeper์ ๋ถ๋ฆฌ๋์ง๋ง ์ถ์ข ์๊ฐ ์๋ ๋ธ๋ก์ปค์๋ ๋ถ๋ฆฌ๋์ง ์์ต๋๋ค.
์. 28. ์๋๋ฆฌ์ค 4: ์ฌ์ก์ฌ๋ก๋ถํฐ ๋ถ๋ฆฌ๋ ๋ฆฌ๋
์ผ๋ง ํ Zookeeper๋ ๋ธ๋ก์ปค ์คํจ๋ฅผ ๋ฑ๋กํ๊ณ ์ด์ ๋ํด ์ปจํธ๋กค๋ฌ์ ์๋ฆฝ๋๋ค. ๊ทธ๋ ์ถ์ข ์๋ค ์ค์์ ์๋ก์ด ์ง๋์๋ฅผ ์ ํํ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์๋ ๋ฆฌ๋๋ ๊ณ์ํด์ ์์ ์ด ๋ฆฌ๋๋ผ๊ณ ์๊ฐํ๊ณ ๋ค์ ํญ๋ชฉ์ ๊ณ์ ์๋ฝํ๊ฒ ๋ฉ๋๋ค. ์น์ธ=1. ์ถ์ข ์๋ค์ ๋ ์ด์ ๊ทธ์๊ฒ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ๋ณด๋ด์ง ์์ผ๋ฏ๋ก ๊ทธ๋ ํด๋น ์์ฒญ์ด ์ฃฝ์ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๊ณ ISR์ ์์ฒด์ ์ผ๋ก ์ถ์ํ๋ ค๊ณ ์๋ํ ๊ฒ์ ๋๋ค. ํ์ง๋ง Zookeeper์ ์ฐ๊ฒฐ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ์ด ์์ ์ ์ํํ ์ ์์ผ๋ฉฐ ๊ทธ ์์ ์์๋ ๋ ์ด์์ ํญ๋ชฉ ์๋ฝ์ ๊ฑฐ๋ถํฉ๋๋ค.
ะกะพะพะฑัะตะฝะธั ์น์ธ=๋ชจ๋ ISR์ด ๋จผ์ ๋ชจ๋ ๋ณต์ ๋ณธ์ ์ผ๊ณ ๋ฉ์์ง๊ฐ ๋๋ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ์น์ธ์ ๋ฐ์ง ๋ชปํฉ๋๋ค. ์๋ ๋ฆฌ๋๊ฐ ISR์์ ํด๋น ๋ฉ์์ง๋ฅผ ์ ๊ฑฐํ๋ ค๊ณ ์๋ํ๋ฉด ๊ทธ๋ ๊ฒ ํ ์ ์์ผ๋ฉฐ ๋ฉ์์ง ์์ ์ด ์ ํ ์ค๋จ๋ฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ๊ณง ๋ฆฌ๋์ ๋ณ๊ฒฝ์ ํ์ธํ๊ณ ๋ ์ฝ๋๋ฅผ ์ ์๋ฒ๋ก ๋ณด๋ด๊ธฐ ์์ํฉ๋๋ค. ๋คํธ์ํฌ๊ฐ ๋ณต์๋๋ฉด ์๋ ๋ฆฌ๋๋ ์์ ์ด ๋ ์ด์ ๋ฆฌ๋๊ฐ ์๋๋ผ๋ ๊ฒ์ ํ์ธํ๊ณ ๋ก๊ทธ ๋ถ๊ธฐ๋ฅผ ํผํ๊ธฐ ์ํด ์คํจ ๋น์ ์ ๋ฆฌ๋๊ฐ ๊ฐ์ก๋ HW ๊ฐ์ผ๋ก ๋ก๊ทธ๋ฅผ ์๋ฆ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ ๋ฆฌ๋์๊ฒ ๊ฐ์ ธ์ค๊ธฐ ์์ฒญ์ ๋ณด๋ด๊ธฐ ์์ํฉ๋๋ค. ์ ๋ฆฌ๋์ ๋ณต์ ๋์ง ์์ ์๋ ๋ฆฌ๋์ ๋ชจ๋ ๋ ์ฝ๋๋ ์์ค๋ฉ๋๋ค. ์ฆ, ๋ ๋ฆฌ๋๊ฐ ์์ ์ค์ผ ๋ ์๋ ๋ฆฌ๋๊ฐ ๋ช ์ด ๋์ ์น์ธํ์ง ์์ ๋ฉ์์ง๋ ์์ค๋ฉ๋๋ค.
์. 29. ์๋๋ฆฌ์ค 4. ๋ธ๋ก์ปค 1์ ๋ฆฌ๋๋ ๋คํธ์ํฌ๊ฐ ๋ณต์๋ ํ ํ๋ก์ด๊ฐ ๋ฉ๋๋ค.
์๋๋ฆฌ์ค 5: Follower๋ ๋ค๋ฅธ Kafka ๋ ธ๋ ๋ฐ Zookeeper์ ์์ ํ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค.
Follower๋ ๋ค๋ฅธ Kafka ๋ ธ๋์ Zookeeper๋ก๋ถํฐ ์์ ํ ๊ฒฉ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋ ๋คํธ์ํฌ๊ฐ ๋ณต์๋ ๋๊น์ง ISR์์ ์์ ์ ์ ๊ฑฐํ ๋ค์ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ฐ๋ผ์ก์ต๋๋ค.
์. 30. ์๋๋ฆฌ์ค 5: ISR์์ ๊ฒฉ๋ฆฌ๋ ํ๋ก์๊ฐ ์ ๊ฑฐ๋จ
์๋๋ฆฌ์ค 6: ๋ฆฌ๋๋ ๋ค๋ฅธ Kafka ๋ ธ๋ ๋ฐ Zookeeper์ ์์ ํ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค.
์. 31. ์๋๋ฆฌ์ค 6. ๋ฆฌ๋์ ๋ ๋ช
์ ์ถ์ข
์
๋ฆฌ๋๋ ์ถ์ข ์, ์ปจํธ๋กค๋ฌ, ์ฌ์ก์ฌ๋ก๋ถํฐ ์์ ํ ๊ฒฉ๋ฆฌ๋ฉ๋๋ค. ์งง์ ๊ธฐ๊ฐ ๋์์ ๊ณ์ํด์ ๋ค์์ ์ถํ์์ ์ ์ํ ์์ ์ ๋๋ค. ์น์ธ=1.
์. 32. ์๋๋ฆฌ์ค 6: ๋ค๋ฅธ Kafka ๋ฐ Zookeeper ๋
ธ๋์์ ๋ฆฌ๋ ๊ฒฉ๋ฆฌ
๋ง๋ฃ ํ ์์ฒญ์ ๋ฐ์ง ๋ชปํ ๊ฒฝ์ฐ ๋ณต์ .์ง์ฐ.์๊ฐ.์ต๋.ms, ISR์ ์์ฒด์ ์ผ๋ก ์ถ์ํ๋ ค๊ณ ์๋ํ์ง๋ง Zookeeper์์ ํต์ ์ด ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ ํ ์ ์์ผ๋ฉฐ ์ดํ ์ฐ๊ธฐ ํ์ฉ์ด ์ค์ง๋ฉ๋๋ค.
ํํธ Zookeeper๋ ๊ฒฉ๋ฆฌ๋ ๋ธ๋ก์ปค๋ฅผ ์ฃฝ์ ๊ฒ์ผ๋ก ํ์ํ๊ณ ์ปจํธ๋กค๋ฌ๋ ์๋ก์ด ๋ฆฌ๋๋ฅผ ์ ์ถํฉ๋๋ค.
์. 33. ์๋๋ฆฌ์ค 6. ๋ ๋ช
์ ๋ฆฌ๋
์๋ ๋ฆฌ๋๋ ๋ช ์ด ๋์ ํญ๋ชฉ์ ์๋ฝํ ์ ์์ง๋ง ๊ทธ๋ฐ ๋ค์ ๋ฉ์์ง ์๋ฝ์ ์ค์งํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ 60์ด๋ง๋ค ์ต์ ๋ฉํ๋ฐ์ดํฐ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ๊ทธ๋ค์ ๋ฆฌ๋ ๋ณ๊ฒฝ์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐ๊ณ ์ ๋ฆฌ๋์๊ฒ ํญ๋ชฉ์ ๋ณด๋ด๊ธฐ ์์ํฉ๋๋ค.
์. 34. ์๋๋ฆฌ์ค 6: ์ ์กฐ์
์ฒด๊ฐ ์๋ก์ด ๋ฆฌ๋๋ก ์ ํ
์ฐ๊ฒฐ์ด ๋์ด์ง ์ดํ ์๋ ๋ฆฌ๋๊ฐ ํ์ธํ ๋ชจ๋ ํญ๋ชฉ์ ์์ค๋ฉ๋๋ค. ๋คํธ์ํฌ๊ฐ ๋ณต์๋๋ฉด ์๋ ๋ฆฌ๋๋ Zookeeper๋ฅผ ํตํด ์์ ์ด ๋ ์ด์ ๋ฆฌ๋๊ฐ ์๋์ ์๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ ์ถ ์ ์ ๋ฆฌ๋์ HW์ ๋ํ ๋ก๊ทธ๋ฅผ ์๋ฅด๊ณ ํ๋ก์ด๋ก์ ์์ฒญ์ ๋ณด๋ด๊ธฐ ์์ํฉ๋๋ค.
์. 35. ์๋๋ฆฌ์ค 6: ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ๋ณต์๋ ํ ์๋ ๋ฆฌ๋๊ฐ ํ๋ก์ด๊ฐ ๋ฉ๋๋ค.
์ด๋ฌํ ์ํฉ์์๋ ์งง์ ๊ธฐ๊ฐ ๋์ ๋ ผ๋ฆฌ์ ๋ถ๋ฆฌ๊ฐ ๋ฐ์ํ ์ ์์ง๋ง, ์น์ธ=1 ะธ min.insync.replicas ๋ํ 1. ๋คํธ์ํฌ๊ฐ ๋ณต์๋ ํ ์๋ ๋ฆฌ๋๊ฐ ์์ ์ด ๋ ์ด์ ๋ฆฌ๋๊ฐ ์๋๋ผ๋ ๊ฒ์ ์ธ์ํ๊ฑฐ๋ ๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ๋๊ฐ ๋ณ๊ฒฝ๋์์์ ์ธ์ํ๊ณ ์ ๋ฆฌ๋์ ์ฐ๊ธฐ ์์ํ๋ ๊ฒฝ์ฐ ์ค ๋จผ์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ ผ๋ฆฌ์ ๋ถ๋ฆฌ๊ฐ ์๋์ผ๋ก ์ข ๋ฃ๋ฉ๋๋ค. ์ด๋ค ๊ฒฝ์ฐ๋ ์ผ๋ถ ๋ฉ์์ง๋ ์์ค๋์ง๋ง ์น์ธ=1.
์ด ์๋๋ฆฌ์ค์ ๋ ๋ค๋ฅธ ๋ณํ์ ๋คํธ์ํฌ ๋ถํ ์ง์ ์ ์ถ์ข ์๋ค์ด ๋ค์ณ์ง๊ณ ๋ฆฌ๋๊ฐ ISR์ ์์ ์๊ฒ๋ง ์์ถํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ฐ๊ฒฐ ๋๊น์ผ๋ก ์ธํด ๊ฒฉ๋ฆฌ๋ฉ๋๋ค. ์๋ก์ด ๋ฆฌ๋๊ฐ ์ ์ถ๋์ง๋ง ์๋ ๋ฆฌ๋๋ ๊ณ์ํด์ ์ฐธ๊ฐ๋ฅผ ์๋ฝํฉ๋๋ค. ์น์ธ=๋ชจ๋, ISR์๋ ๊ทธ ์ธ์๋ ์๋ฌด๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋คํธ์ํฌ๊ฐ ๋ณต์๋๋ฉด ์ด๋ฌํ ๊ธฐ๋ก์ ์์ค๋ฉ๋๋ค. ์ด ์ต์ ์ ํผํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. min.insync.replicas = 2.
์๋๋ฆฌ์ค 7: Kafka ์ปจํธ๋กค๋ฌ ๋ ธ๋๊ฐ ๋ค๋ฅธ Kafka ๋ ธ๋๋ฅผ ๋ณผ ์ ์์
์ผ๋ฐ์ ์ผ๋ก Kafka ๋ ธ๋์์ ์ฐ๊ฒฐ์ด ๋์ด์ง๋ฉด ์ปจํธ๋กค๋ฌ๋ ๋ฆฌ๋ ๋ณ๊ฒฝ ์ ๋ณด๋ฅผ ํด๋น ๋ ธ๋๋ก ์ ์กํ ์ ์์ต๋๋ค. ์ต์ ์ ๊ฒฝ์ฐ ์ด๋ ์๋๋ฆฌ์ค 6์์์ ๊ฐ์ด ๋จ๊ธฐ์ ์ธ ๋ ผ๋ฆฌ์ ๋ถ๋ฆฌ๋ก ์ด์ด์ง ๊ฒ์ ๋๋ค. ๋๊ฐ ํ์๊ฐ ์คํจํ ๊ฒฝ์ฐ ๋ธ๋ก์ปค๋ ๋จ์ํ ๋ฆฌ๋์ญ ํ๋ณด๊ฐ ๋์ง ์์ต๋๋ค.
์๋๋ฆฌ์ค 8: Kafka ์ปจํธ๋กค๋ฌ์ Zookeeper๊ฐ ํ์๋์ง ์์ต๋๋ค.
Zookeeper๋ ํ๋ฝํ ์ปจํธ๋กค๋ฌ๋ก๋ถํฐ ํ์ ๋ฐ์ง ์๊ณ ์ Kafka ๋ ธ๋๋ฅผ ์ปจํธ๋กค๋ฌ๋ก ์ ํํฉ๋๋ค. ์๋ ์ปจํธ๋กค๋ฌ๋ ๊ณ์ํด์ ๊ทธ ์์ฒด๋ก ํ์๋ ์ ์์ง๋ง Zookeeper๋ก๋ถํฐ ์๋ฆผ์ ๋ฐ์ง ์์ผ๋ฏ๋ก ์ํํ ์์ ์ด ์์ต๋๋ค. ๋คํธ์ํฌ๊ฐ ๋ณต์๋๋ฉด ๊ทธ๋ ์์ ์ด ๋ ์ด์ ์ปจํธ๋กค๋ฌ๊ฐ ์๋๋ผ ์ผ๋ฐ Kafka ๋ ธ๋๊ฐ ๋์์์ ๊นจ๋ซ๊ฒ ๋ฉ๋๋ค.
์๋๋ฆฌ์ค์ ๊ฒฐ๋ก
ํ๋ก์ด ์ฐ๊ฒฐ์ด ๋์ด์ ธ๋ ๋ฉ์์ง๊ฐ ์์ค๋์ง๋ ์์ง๋ง ๋คํธ์ํฌ๊ฐ ๋ณต์๋ ๋๊น์ง ์ผ์์ ์ผ๋ก ์ค๋ณต์ฑ์ด ์ค์ด๋๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ฌผ๋ก , ํ๋ ์ด์์ ๋ ธ๋๊ฐ ์์ค๋๋ฉด ๋ฐ์ดํฐ ์์ค์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
์ฐ๊ฒฐ ๋๊น์ผ๋ก ์ธํด ๋ฆฌ๋๊ฐ Zookeeper์์ ๋ถ๋ฆฌ๋๋ฉด ๋ฉ์์ง๊ฐ ์์ค๋ ์ ์์ต๋๋ค. ์น์ธ=1. Zookeeper์์ ์์ฌ ์ํต ๋ถ์กฑ์ผ๋ก ์ธํด ๋ ๋ฆฌ๋์์ ์งง์ ๋ ผ๋ฆฌ์ ๋ถ์ด์ด ๋ฐ์ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ๋งค๊ฐ๋ณ์๋ก ํด๊ฒฐ๋ฉ๋๋ค. ์น์ธ=๋ชจ๋.
๋งค๊ฐ ๋ณ์ min.insync.replicas ๋ ๊ฐ ์ด์์ ๋ณต์ ๋ณธ์ผ๋ก ๋ถํ ํ๋ฉด ์ด๋ฌํ ๋จ๊ธฐ ์๋๋ฆฌ์ค์์ ์๋๋ฆฌ์ค 6๊ณผ ๊ฐ์ด ๋ฉ์์ง๊ฐ ์์ค๋์ง ์๋๋ค๋ ์ถ๊ฐ์ ์ธ ๋ณด์ฆ์ ์ ๊ณตํฉ๋๋ค.
์์ค๋ ๋ฉ์์ง ์์ฝ
Kafka์์ ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์๋ ๋ชจ๋ ๋ฐฉ๋ฒ์ ๋์ดํด ๋ณด๊ฒ ์ต๋๋ค.
- ๋ฉ์์ง๊ฐ ๋ค์์ ์ฌ์ฉํ์ฌ ํ์ธ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๋ฆฌ๋ ์คํจ ์น์ธ=1
- ๋ฆฌ๋์ญ์ด ISR ์ธ๋ถ์ ์ถ์ข ์๋ก ๋ถ๊ฒฐํ๊ฒ ์ด์ ๋๋ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์น์ธ=๋ชจ๋
- ๋ค์์ ์ฌ์ฉํ์ฌ ๋ฉ์์ง๊ฐ ํ์ธ๋ ๊ฒฝ์ฐ Zookeeper์์ ๋ฆฌ๋๋ฅผ ๊ฒฉ๋ฆฌํฉ๋๋ค. ์น์ธ=1
- ์ด๋ฏธ ISR ๊ทธ๋ฃน์ ์์ ์ผ๋ก ์ถ์์ํจ ๋ฆฌ๋์ ์์ ํ ๊ณ ๋ฆฝ. ๋ชจ๋ ๋ฉ์์ง๊ฐ ์์ค๋ฉ๋๋ค. ์น์ธ=๋ชจ๋. ์ด๋ ๋ค์ ๊ฒฝ์ฐ์๋ง ํด๋น๋ฉ๋๋ค. min.insync.replicas=1.
- ๋ชจ๋ ํํฐ์ ๋ ธ๋์ ๋์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฉ์์ง๋ ๋ฉ๋ชจ๋ฆฌ์์ ํ์ธ๋๊ธฐ ๋๋ฌธ์ ์ผ๋ถ๋ ์์ง ๋์คํฌ์ ๊ธฐ๋ก๋์ง ์์ ์ ์์ต๋๋ค. ์๋ฒ๋ฅผ ์ฌ๋ถํ ํ ํ ์ผ๋ถ ๋ฉ์์ง๊ฐ ๋๋ฝ๋ ์ ์์ต๋๋ค.
๋ถ์ํ ๋ฆฌ๋์ญ ์ ํ์ ์ด๋ฅผ ๊ธ์งํ๊ฑฐ๋ ์ต์ํ ๋ ๋ฒ์ ์ค๋ณต์ ๋ณด์ฅํจ์ผ๋ก์จ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ๋ด๊ตฌ์ฑ์ด ๋ฐ์ด๋ ๊ตฌ์ฑ์ ์กฐํฉ์ ๋๋ค. ์น์ธ=๋ชจ๋ ะธ min.insync.replicas ๋ ๋ง์ 1.
RabbitMQ์ Kafka์ ์ ๋ขฐ์ฑ ์ง์ ๋น๊ต
์์ ์ฑ๊ณผ ๊ณ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ ํ๋ซํผ ๋ชจ๋ ๊ธฐ๋ณธ ๋ฐ ๋ณด์กฐ ๋ณต์ ์์คํ ์ ๊ตฌํํฉ๋๋ค. ๊ทธ๋ฌ๋ RabbitMQ์๋ ์ํฌ๋ ์ค๊ฑด์ด ์์ต๋๋ค. ์ฅ์ ํ ์ฌ์ ์ ์ ๋ ธ๋๋ ๋ฐ์ดํฐ๋ฅผ ํ๊ธฐํ๊ณ ๋๊ธฐํ๊ฐ ์ฐจ๋จ๋ฉ๋๋ค. ์ด ์ด์ค ๋ฌธ์ ๋ RabbitMQ์์ ๋๊ท๋ชจ ๋๊ธฐ์ด์ ์๋ช ์ ์๋ฌธ์ ์ ๊ธฐํฉ๋๋ค. ์ค๋ณต์ฑ์ด ์ค์ด๋ค๊ฑฐ๋ ์ฐจ๋จ ์๊ฐ์ด ๊ธธ์ด์ง๋ ๊ฒ์ ๋ฐ์๋ค์ฌ์ผ ํฉ๋๋ค. ์ค๋ณต์ฑ์ ์ค์ด๋ฉด ๋๊ท๋ชจ ๋ฐ์ดํฐ ์์ค ์ํ์ด ๋์์ง๋๋ค. ๊ทธ๋ฌ๋ ๋๊ธฐ์ด์ด ์์ ๊ฒฝ์ฐ ์ค๋ณต์ฑ์ ์ํด ๋ฐ๋ณต์ ์ธ ์ฐ๊ฒฐ ์๋๋ฅผ ํตํด ์งง์ ๊ธฐ๊ฐ(๋ช ์ด) ๋์ ์ฌ์ฉํ ์ ์๋ ์ํฉ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์นดํ์นด์๋ ์ด๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ฆฌ๋์ ํ๋ก์ด ์ฌ์ด์ ๋ถ๊ธฐ์ ์์๋ง ๋ฐ์ดํฐ๋ฅผ ๋ฒ๋ฆฝ๋๋ค. ๊ณต์ ๋ ๋ฐ์ดํฐ๋ ๋ชจ๋ ์ ์ฅ๋ฉ๋๋ค. ๋ํ ๋ณต์ ๋ ์์คํ ์ ์ฐจ๋จํ์ง ์์ต๋๋ค. ๋ฆฌ๋๋ ์๋ก์ด ํ๋ก์ด๊ฐ ๋ฐ๋ผ์ก๋ ๋์ ๊ณ์ํด์ ๊ฒ์๋ฌผ์ ์๋ฝํ๋ฏ๋ก ๋ฐ๋ธ์ต์ค์ ๊ฒฝ์ฐ ํด๋ฌ์คํฐ์ ๊ฐ์ ํ๊ฑฐ๋ ๋ค์ ๊ฐ์ ํ๋ ๊ฒ์ด ๊ฐ๋จํ ์์ ์ด ๋ฉ๋๋ค. ๋ฌผ๋ก ๋ณต์ ์ค ๋คํธ์ํฌ ๋์ญํญ ๋ฑ์ ๋ฌธ์ ๋ ์ฌ์ ํ ์กด์ฌํฉ๋๋ค. ๋์์ ์ฌ๋ฌ ํ๋ก์ด๋ฅผ ์ถ๊ฐํ๋ฉด ๋์ญํญ ์ ํ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
RabbitMQ๋ ํด๋ฌ์คํฐ์ ์ฌ๋ฌ ์๋ฒ๊ฐ ๋์์ ์คํจํ ๋ ์์ ์ฑ์ด Kafka๋ณด๋ค ์ฐ์ํฉ๋๋ค. ์ด๋ฏธ ๋งํ๋ฏ์ด RabbitMQ๋ ๋ง์คํฐ์ ๋ชจ๋ ๋ฏธ๋ฌ๊ฐ ๋ฉ์์ง๋ฅผ ๋์คํฌ์ ๊ธฐ๋กํ ํ์๋ง ๊ฒ์์์๊ฒ ํ์ธ์ ๋ณด๋ ๋๋ค. ํ์ง๋ง ์ด๋ก ์ธํด ๋ค์ ๋ ๊ฐ์ง ์ด์ ๋ก ๋๊ธฐ ์๊ฐ์ด ์ถ๊ฐ๋ฉ๋๋ค.
- ์๋ฐฑ ๋ฐ๋ฆฌ์ด๋ง๋ค fsync
- ๋ฏธ๋ฌ ์ค๋ฅ๋ ๊ฐ ๋ ธ๋์ ๊ฐ์ฉ์ฑ(net Tick)์ ํ์ธํ๋ ํจํท์ ์๋ช ์ด ๋ง๋ฃ๋ ํ์๋ง ์ ์ ์์ต๋๋ค. ๋ฏธ๋ฌ๊ฐ ๋๋ ค์ง๊ฑฐ๋ ๋จ์ด์ง๋ฉด ์ง์ฐ์ด ์ถ๊ฐ๋ฉ๋๋ค.
Kafka์ ์ฃผ์ฅ์ ๋ฉ์์ง๊ฐ ์ฌ๋ฌ ๋ ธ๋์ ๊ฑธ์ณ ์ ์ฅ๋๋ฉด ๋ฉ์์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌํ์๋ง์ ๋ฉ์์ง๋ฅผ ํ์ธํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ก ์ธํด ๋ชจ๋ ์ ํ์ ๋ฉ์์ง๊ฐ ์์ค๋ ์ํ์ด ์์ต๋๋ค(์ฌ์ง์ด ์น์ธ=๋ชจ๋, min.insync.replicas=2) ๋์ ๊ณ ์ฅ์ธ ๊ฒฝ์ฐ.
์ ๋ฐ์ ์ผ๋ก Kafka๋ ๋ ๋์ ์ํํธ์จ์ด ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๋ฉฐ ์ฒ์๋ถํฐ ํด๋ฌ์คํฐ์ฉ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ์ ๋ขฐ์ฑ์ ์ํด ํ์ํ ๊ฒฝ์ฐ ํ๋ก์ด ์๋ฅผ 11๋ช ์ผ๋ก ๋๋ฆด ์ ์์ต๋๋ค. ๋ณต์ ์ธ์ 5 ๋ฐ ๋๊ธฐํ ์ ์ต์ ๋ณต์ ๋ณธ ์ min.insync.replicas=3 ๋ฉ์์ง ์์ค์ด ๋งค์ฐ ๋๋ฌผ๊ฒ ๋ฐ์ํฉ๋๋ค. ์ธํ๋ผ๊ฐ ์ด ๋ณต์ ๋น์จ๊ณผ ์ค๋ณต์ฑ ์์ค์ ์ง์ํ ์ ์๋ ๊ฒฝ์ฐ ์ด ์ต์ ์ ์ ํํ ์ ์์ต๋๋ค.
RabbitMQ ํด๋ฌ์คํฐ๋ง์ ์์ ๋๊ธฐ์ด์ ์ ํฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ํธ๋ํฝ์ด ๋ง์ผ๋ฉด ์์ ๋๊ธฐ์ด์ด๋ผ๋ ๋น ๋ฅด๊ฒ ๋์ด๋ ์ ์์ต๋๋ค. ๋๊ธฐ์ด์ด ์ปค์ง๋ฉด ๊ฐ์ฉ์ฑ๊ณผ ์์ ์ฑ ์ฌ์ด์์ ์ด๋ ค์ด ์ ํ์ ํด์ผ ํฉ๋๋ค. RabbitMQ ํด๋ฌ์คํฐ๋ง์ RabbitMQ ์ ์ฐ์ฑ์ ์ด์ ์ด ํด๋ฌ์คํฐ๋ง์ ๋จ์ ๋ณด๋ค ๋ ํฐ ๋น์ผ๋ฐ์ ์ธ ์ํฉ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
๋๊ท๋ชจ ๋๊ธฐ์ด์ ๋ํ RabbitMQ์ ์ทจ์ฝ์ฑ์ ๋ํ ํ ๊ฐ์ง ํด๊ฒฐ์ฑ
์ ๋๊ธฐ์ด์ ์ฌ๋ฌ ๊ฐ์ ์์ ๋๊ธฐ์ด๋ก ๋๋๋ ๊ฒ์
๋๋ค. ์ ์ฒด ๋๊ธฐ์ด์ ์์ ํ ์์๊ฐ ํ์ํ์ง ์๊ณ ๊ด๋ จ ๋ฉ์์ง(์: ํน์ ํด๋ผ์ด์ธํธ์ ๋ฉ์์ง)๋ง ํ์ํ๊ฑฐ๋ ์๋ฌด๊ฒ๋ ์ฃผ๋ฌธํ์ง ์๋ ๊ฒฝ์ฐ ์ด ์ต์
์ด ํ์ฉ๋ฉ๋๋ค. ๋ด ํ๋ก์ ํธ ๋ณด๊ธฐ
๋ง์ง๋ง์ผ๋ก RabbitMQ์ Kafka์ ํด๋ฌ์คํฐ๋ง ๋ฐ ๋ณต์ ๋ฉ์ปค๋์ฆ์ ์๋ ์ฌ๋ฌ ๋ฒ๊ทธ๋ฅผ ์์ง ๋ง์ญ์์ค. ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์์คํ ์ ๋์ฑ ์ฑ์ํด์ง๊ณ ์์ ํด์ก์ง๋ง ์ด๋ค ๋ฉ์์ง๋ ์์ค๋ก๋ถํฐ 100% ์์ ํ ์๋ ์์ต๋๋ค. ๊ฒ๋ค๊ฐ ๋ฐ์ดํฐ์ผํฐ์์๋ ๋๊ท๋ชจ ์ฌ๊ณ ๊ฐ ๋ฐ์ํ๋ค!
์ ๊ฐ ๋์น ๋ถ๋ถ, ์ค์ํ ๋ถ๋ถ, ๋๋ ๋ด์ฉ์ ๋์ํ์ง ์๋ ๋ถ๋ถ์ด ์์ผ๋ฉด ์ธ์ ๋ ์ง ๋๊ธ์ ์ฐ๊ฑฐ๋ ์ ์๊ฒ ์ฐ๋ฝํด ์ฃผ์ธ์.
์ ๋ ์ข ์ข "Kafka์ RabbitMQ ์ค ๋ฌด์์ ์ ํํด์ผ ํฉ๋๊น?", "์ด๋ค ํ๋ซํผ์ด ๋ ์ข์ต๋๊น?"๋ผ๋ ์ง๋ฌธ์ ๋ฐ์ต๋๋ค. ์ฌ์ค ์ด๋ ๊ทํ์ ์ํฉ, ํ์ฌ ๊ฒฝํ ๋ฑ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๊ฐ๋ฅํ ์ ํ ์ฌํญ์ ๋ํด ํ๋์ ํ๋ซํผ์ ๊ถ์ฅํ๋ ๊ฒ์ ๋๋ฌด ๋จ์ํํ๊ธฐ ๋๋ฌธ์ ์ ์๊ฒฌ์ ์ ์ํ๋ ๊ฒ์ ์ฃผ์ ํฉ๋๋ค. ๋๋ ๋น์ ์ด ์์ ์ ์๊ฒฌ์ ํ์ฑํ ์ ์๋๋ก ์ด ์ผ๋ จ์ ๊ธฐ์ฌ๋ฅผ ์ผ์ต๋๋ค.
๋ ์์คํ ๋ชจ๋ ์ด ๋ถ์ผ์ ๋ฆฌ๋๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. ๋๋ ํ๋ก์ ํธ ๊ฒฝํ์ผ๋ก ๋ณผ ๋ ๋ณด์ฅ๋ ๋ฉ์์ง ์์ ๋ฐ ์ ๋ขฐ์ฑ๊ณผ ๊ฐ์ ๊ฒ์ ์ค์ํ๊ฒ ์๊ฐํ๋ ๊ฒฝํฅ์ด ์๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ ํธ๊ฒฌ์ด ์์ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ ๋ขฐ์ฑ๊ณผ ๋ณด์ฅ๋ ์์๊ฐ ๋ถ์กฑํ ๋ค๋ฅธ ๊ธฐ์ ์ ๋ณธ ๋ค์ RabbitMQ์ Kafka๋ฅผ ์ดํด๋ณด๊ณ ์ด ๋ ์์คํ
์ ๋๋ผ์ด ๊ฐ์น๋ฅผ ๊นจ๋ฌ์์ต๋๋ค.
์ถ์ฒ : habr.com