03. Broker, Zookeeper
Last updated
Last updated
Partition์ ๋ํ Read ๋ฐ Write๋ฅผ ๊ด๋ฆฌํ๋ ์ํํธ์จ์ด
Kafka Server๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํจ.
Topic ๋ด์ Partition ๋ค์ ๋ถ์ฐ, ์ ์ง ๋ฐ๊ด๋ฆฌ
๊ฐ๊ฐ์ Broker๋ค์ ID๋ก ์๋ณ๋จ (๋จ, ID๋ ์ซ์)
Topic์ ์ผ๋ถ Partition๋ค์ ํฌํจ โ Topic ๋ฐ์ดํฐ์ ์ผ๋ถ๋ถ(Partition)์ ๊ฐ์ ๋ฟ ๋ฐ์ดํฐ ์ ์ฒด๋ฅผ ๊ฐ๊ณ ์์ง ์์
Client๋ ํน์ Broker์ ์ฐ๊ฒฐํ๋ฉด ์ ์ฒด ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐ๋จ
Kafka Cluster : ์ฌ๋ฌ ๊ฐ์ Broker๋ค๋ก ๊ตฌ์ฑ๋จ
์ต์ 3๋ ์ด์์ Broker๋ฅผ ํ๋์ Cluster๋ก ๊ตฌ์ฑํด์ผ ํจ โ 4๋ ์ด์์ ๊ถ์ฅํจ
๋ชจ๋ Kafka Broker๋ Bootstrap(๋ถํธ์คํธ๋ฉ) ์๋ฒ๋ผ๊ณ ๋ถ๋ฆ
ํ๋์ broker์๋ง ์ฐ๊ฒฐํ๋ฉด Cluster ์ ์ฒด์ ์ฐ๊ฒฐ๋จ โ ํ์ง๋ง, ํน์ Broker ์ฅ์ ๋ฅผ ๋๋นํ์ฌ, ์ ์ฒด Broker List(IP, port)๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ ฅ ๊ถ์ฅ
๊ฐ๊ฐ์ Broker๋ ๋ชจ๋ Broker, Topic, Partition์ ๋ํด ์๊ณ ์์(Metadata)
Zookeeper๋ Broker๋ฅผ ๊ด๋ฆฌ(Broker ๋ค์ ๋ชฉ๋ก/์ค์ ์ ๊ด๋ฆฌ)ํ๋ ์ํํธ์จ์ด
Zookeeper๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ํด kafka์ ์๋ฆผ โ Topic ์์ฑ/์ ๊ฑฐ, Broker ์ถ๊ฐ/์ ๊ฑฐ ๋ฑ
Zookeeper ์์ด๋ Kafka๊ฐ ์๋ํ ์ ์์ โKIP-500์ ํตํด Zookeeper ์ ๊ฑฐ๊ฐ ์งํ์ค โ2022๋ ์ Zookeeper๋ฅผ ์ ๊ฑฐํ ์ ์ ๋ฒ์ ์ถ์ ์์
Zookeeper๋ ํ์์ ์๋ฒ๋ก ์๋ํ๊ฒ ์ค๊ณ (์ต์ 3, ๊ถ์ฅ 5)
Zookeeper์๋ Leader(writes)๊ฐ ์๊ณ ๋๋จธ์ง ์๋ฒ๋ Follower(reads)
Leader/Follower ๊ธฐ๋ฐ Master/Slave ์ํคํ ์ฒ
Zookeeper๋ ๋ถ์ฐํ Configuration ์ ๋ณด ์ ์ง, ๋ถ์ฐ ๋๊ธฐํ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ๋์ฉ๋ ๋ถ์ฐ ์์คํ ์ ์ํ ๋ค์ด๋ฐ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ ์ํํธ์จ์ด
๋ถ์ฐ ์์ ์ ์ ์ดํ๊ธฐ ์ํ Tree ํํ์ ๋ฐ์ดํฐ ์ ์ฅ์ โ Zookeeper๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉํฐ Kafka Broker๋ค ๊ฐ์ ์ ๋ณด(๋ณ๊ฒฝ ์ฌํญ ํฌํจ) ๊ณต์ , ๋๊ธฐํ ๋ฑ์ ์ํ
Quorum ์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฐ
Quorum(์ฟผ๋ผ): ํฉ์์ฒด๊ฐ ์์ฌ๋ฅผ ์งํ์ํค๊ฑฐ๋ ์๊ฒฐ์ ํ๋๋ฐ ํ์ํ ์ต์ํ๋์ ์ธ์์
๋ถ์ฐ ์ฝ๋๋ค์ด์ ํ๊ฒฝ์์์ ์ฅ์ ๋์์ ์ํด ์ฌ์ฉ