๐ฌ Kafka ์ Zookeeper ์ ๊ด๊ณ? ๋ผ๋ ค์ผ ๋ ์ ์๋ ๊ด๊ณ๋ค. Kafka ๋ Zookeeper ๋ฅผ ํตํด ํ์ํ Metadata ๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ๊ณ Cluster ์ด์์ ์ํ ๋ฆฌ๋ ๋ฐ
๐ฌ Kafka ์ Zookeeper ์ ๊ด๊ณ? ๋ผ๋ ค์ผ ๋ ์ ์๋ ๊ด๊ณ๋ค. Kafka ๋ Zookeeper ๋ฅผ ํตํด ํ์ํ Metadata ๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ๊ณ Cluster ์ด์์ ์ํ ๋ฆฌ๋ ๋ฐ ํํฐ์ ์ค๋๋ฅผ ์ ์ถํ๊ณ ์๋ค. ์ด๋ฌํ ๊ด๊ณ๋ก Kafka ๋ฅผ ์ด์ํ๊ธฐ ์ํด์๋ ๋ฐ๋์ Zookeeper ๊ฐ ๊ตฌ์ถ๋์ด์ผ ํ๊ณ ์ด์๋จ๊ณ์์๋ Kafka ๊ฐ ์ฌ์ฉํ๋ Zookeeper ๋ฅผ ๋ค๋ฅธ ์๋ฃจ์ ๊ณผ ํจ๊ป ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ๊ถ์ฅํ๊ณ ์๋ค. ๐ฌ Kafka ๋ ์ Zookeeper ์ ํค์ด์ง๋ ค๊ณ ํ๋๊ฐ? ๋ค์๊ณผ ๊ฐ์ ๋ช๊ฐ์ง ์ด์ ๊ฐ ์๋ค. 1๏ธโฃ Kafka ๋ฅผ ์ฐ๋ ค๋ฉด Zookeeper ๋ ๊ฐ์ด ์์์ผ ํ๋ค. - ์ฒ์ Kafka ๋ฅผ ๋ฐฐ์ฐ๋ ์ ์ฅ์์๋ ๋์์ 2๊ฐ์ง์ ์๋ฃจ์ ์ ๋ฐฐ์์ผ ํ๋ค๋ ๊ฒ์ ์ง์ ์ฅ๋ฒฝ์ ๋๋ ์ ์๋ค. - ์๋ก ๋ค๋ฅธ ๋๊ฐ์ ๋ถ์ฐ ์์คํ ์ ๊ฐ์ด ์ด์ํ๊ณ ๊ด๋ฆฌ ๋ฐ ๋ฐฐํฌ๋ฅผ ํ ์ ์๋๋ก ํ์ต์ด ๋๊ณ ์ค๋น๊ฐ ๋์ด์ผ ํ๋๋ฐ ์ด๋ ์ฒ์ ์ง์ ํ๋ ์ฌ๋ ์ ์ฅ์์๋ ๋ถ๋ด์ค๋ฌ์ธ ์ ์๊ณ ํ์ต ๋น์ฉ ๋ฐ ๊ตฌ์ถ์ ์๊ฐ์ด ๋ค ์ ์๋ค. 2๏ธโฃ ๋ณด์ ์ค์ ์ Zookeeper ๋ ๊ฐ์ด ์ค์ ํด์ค์ผ ํ๋ค. - 1๋ฒ ๋ด์ฉ๊ณผ ๋น์ทํ ๋งฅ๋ฝ์ด์ง๋ง ์๋ฒฝํ๊ฒ Kafka Cluster ์ ๋ํ ๋ณด์ ์ค์ ์ ์ ์ฉํ๋ ค๋ฉด Zookeeper ๊น์ง ๊ฐ์ด ํด์ค์ผ ํ๋ค. - ๋ง์ฝ ์ด๋ฌํ ๋ถ๋ถ์ ๋์ณ์ Kafka ๋ง ์งํํ์ ๊ฒฝ์ฐ ๋ณด์์ ์ด์๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค. 3๏ธโฃ Zookeeper ๋ฅผ ์ด์ํ๋ ์๋ฒ ๋ฆฌ์์ค๊ฐ ์๊น๋ค. - ์์ ํ๊ฒ ์ด์ํ๊ธธ ์ํ๋ค๋ฉด Zookeeper ๋ฅผ ์ต์ 5๋ ์ด์ ๊ตฌ์ถํ ๊ฒ์ ๊ถ์ฅํ๊ณ ์๋ค. ๋ง์ฝ ์ด๋ ๊ฒ ๊ตฌ์ถํ Zookeeper ๋ ธ๋๋ฅผ ๋ชจ๋ Kafka ๋ก ๋ฐ๊ฟ ์ ์๋ค๋ฉด Kafka Cluster ์์ ์ด์ํ ์ ์๋ ํ ํฝ์ด๋ ํํฐ์ ์๊ฐ ์ฆ๊ฐํ๊ฒ ๋๋ค. - ๊ฐ๋จํ๊ฒ ํ ์คํธ ๋ชฉ์ ์ผ๋ก Single ๋ ธ๋๋ฅผ ๊ตฌ์ถ ํ๊ณ ์ถ์ด๋ Zookeeper ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌ์ถ ๋์ด์ผ ํ๋ฏ๋ก ์ด์ ๋ํ ๋ฆฌ์์ค ๋ญ๋น๋ ๋นํจ์จ์ ์ธ ๊ตฌ์กฐ๊ฐ ๋ฐ์ํ๋ค. 4๏ธโฃ Kafka ์ Zookeeper ๊ฐ์ ๋ฐ์ดํฐ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ๋ค. - ์ด๊ฒ ์๋ง ๊ฐ์ฅ ํฐ ์ด์ ์ด์ง ์์๊น ์ถ์๋ฐ, ๋ช๊ฐ์ง Metadata ๋ Zookeeper ์ ๊ธฐ๋กํ์ง๋ง Kafka ์์๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ๋กํ๋๋ฐ ์ด๋ Kafka ์ Zookeeper ๊ฐ์ ๋ฐ์ดํฐ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ๋ฉด ์ด์์ ํฌ๋ฆฌํฐ์ปฌํ ์ด์๊ฐ ๋ฐ์ํ๋ค. - ์ด๋ฌํ ์ด์๋ฅผ ํผํ๊ธฐ ์ํด Zookeeper ์ znode ๋ฅผ ๋งค๋ฒ ํ์ํ๋๋ก ํ๋๊ฒ๋ ๋นํจ์จ์ ์ด๊ณ ์ํ ๋ณ๊ฒฝ์ด๋ ์ ํ๊ฐ ์ค๋๊ฑธ๋ฆฌ๊ฑฐ๋ ์ค๊ฐ์ ์ ์ค๋ ์ ์๋ค. ๐ฌ Kafka ๋ Zookeeper ์ ์ด๋ป๊ฒ ํค์ด์ง๋ ค๊ณ ํ๋๊ฐ? https://careerly.co.kr/comments/64092?utm_campaign=self-share ์์๋ ์ธ๊ธํ๋ Raft ๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์๋กญ๊ฒ ๋ถ์ฐ ์์คํ ์ด์์ ํ์ํ ๋ฆฌ๋ ์ ์ถ์ด๋ ์ด๋ฒคํธ ์ ํ๋ฑ์ ๋ง๋ค๋ ค๊ณ ์๋ํ๊ณ ์๋ค. ์ฆ, ๊ธฐ์กด์ Zookeeper ๋ฅผ ํตํด ์ฌ์ฉํ๋ ZAB ์๊ณ ๋ฆฌ์ฆ์ Raft ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฐ๊พธ๋๊ฑฐ๋ผ ์๊ฐํ๋ฉด ๋๋ค. ์ต์ 3๋ ์ด์์ ์ฟผ๋ผ ๋ ธ๋๊ฐ ์๊ณ ์ด์ค์ ์ปจํธ๋กค๋ฌ์ Metadata ๋ณต์ ๋ฐ ์ปจํธ๋กค๋ฌ ์ํ๋ฅผ ์ฒดํฌํ๋ ํ๋ก์ ๋ ธ๋๋ฅผ ๋๋ค. ์ฟผ๋ผ ๋ ธ๋๋ค์ Raft ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ตฌํํ ์ด๋ฒคํธ ์ ํ ๋ฐ Metadata ๋ณต์ , ๋ฆฌ๋ ์ ์ถ๋ฑ์ ํ๊ฒ ๋๋ค. Zookeeper ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฟผ๋ผ ๋ ธ๋๊ฐ ๋ง์ผ๋ฉด ๋ง์์๋ก ์ฅ์ ์ ๋ํ ๋ณต๊ตฌ ๊ฐ๋ฅ์ฑ์ด ์ปค์ง๋ค. ๋ณ๊ฒฝ๋๋ ํญ๋ชฉ์ค์ ์๊ณ ๋ฆฌ์ฆ ์ธ์ ํฅ๋ฏธ๋ก์ ๋ ๋ถ๋ถ์ ๊ธฐ์กด์๋ Metadata ์ ๋ํ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋ฉด ์ปจํธ๋กค๋ฌ ๋ ธ๋๊ฐ ๋๋จธ์ง ๋ ธ๋๋ค์๊ฒ ๋ณ๊ฒฝ์ฌํญ์ Push ํ๋ ๊ตฌ์กฐ์๋๋ฐ ์ด๊ฒ Poll ํํ๋ก ๋ฐ๋๋ค๋ ์ ์ด๋ค. ๐ฌ ๊ฒฐ๋ง์? 2019๋ 7์์ ์ด ์ ์์ด ๋์๊ณ ๊ทธ๋ก๋ถํฐ 2๋ ๋ค์ธ 2021๋ 4์์ 2.8 ๋ฒ์ ์ผ๋ก ์ผ๋ฆฌ ์์ธ์ค ๋น๋๊ฐ ๋ฆด๋ฆฌ์ฆ ๋์๋ค. ํ์ฌ 3.2 ๋ฒ์ ๊น์ง ์ถ์๊ฐ ๋์์ง๋ง ์์ง๊น์ง ์ด์(Production)๋จ๊ณ์์ Zookeeper ๋ฅผ ์ฌ์ฉํ๋๊ฒ์ ๊ถ์ฅํ๊ณ ์๋ค. ๊ฐ์ธ์ ์ผ๋ก Zookeeper ์ ์ธ์ ๋ํ ์์ ํ๋ ๋ฆด๋ฆฌ์ฆ๊ฐ ๋์ค๊ธฐ๋ฅผ ๋ฐ๋ผ๊ณ ์์ง๋ง ์ค์ ๋ก๋ ๋ ์ค๋๊ฑธ๋ฆด๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ ๋ค. ๊ทธ ์ด์ ๋ก ๋ถ์ฐ ์์คํ ์ ํต์ฌ์ด๋ ๋ค๋ฆ์๋ ๋ฆฌ๋ ์ ์ถ์ด๋ ์ด๋ฒคํธ ์ ํ ๋ฐ Metadata ๊ด๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๊พผ๋ค๋๊ฒ ์๊ฐ๋ณด๋ค ์ฌ์ด์ผ์ด ์๋๋ค. ๋๊ตฐ๋ค๋ Zookeeper ์์ ์ฌ์ฉํ๋ ZAB ์๊ณ ๋ฆฌ์ฆ์ด ์๋ Raft ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ์ด๋ ๊ทธ ๊ฐ๊ทน์ ๋ ํด ์ ๋ฐ์ ์๋ค. ๋ํ ์คํ์์ค ํน์ฑ์ ๋ง์ ์ฌ๋๋ค์ด ์จ๋ณด๊ณ ๊ฒฝํํ ๋ค์ํ ์ด์๋ฅผ ์ฌ๋ ค์ค์ผ ์ด๋ฅผ ํจ์นํ๊ณ ์์ ํ๊ฐ ์งํ๋ ์ ์๋๋ฐ Zookeeper ์ ์ธ ๋ชจ๋๋ฅผ ์ด์ํ๊ฒฝ์์ ์ฐ๋ ์ฌ์ฉ์๊ฐ ๋ง์ง ์์๊ฒ๋ ํ๋ชซ ํ์ง ์์๊น ์ถ๋ค. ์ฌ์ค ์ด๋ฐ๊ฑด Kafka ๊ฐ ์ด๋์ ๋ ์์ ๋ ์ํ์์๋ ๊ฐ์ ํ์ง ๋ง๊ณ ์ด๋ฐ(1.0 ๋ฒ์ ์ ์ด์์๋)์ ํ์ด์ผ ํ์ง ์์๋ ์ถ๋ค. ์ด ๋ก๋งจ์ค(?)์ ๊ฒฐ๋ก ์ด ์ด๋ป๊ฒ ๋ ์ง ๊ท์ถ๊ฐ ์ฃผ๋ชฉ๋๋ค.