"Hadoop์์ ๋์ฉ๋ ๋ฐ์ดํฐ์ ๋ถ์ฐ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ" ์๋ฆฌ์ฆ ์ค "Hadoop. ZooKeeper" ๊ฐ์ ๋๋ณธ์ ์ฝ์ด ๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
Hadoop ์ํ๊ณ์์ ZooKeeper์ ์์น๋ ๋ฌด์์ ๋๊น? ๋ถ์ฐ ์ปดํจํ ์ ๋ํ ํ์ ์ฌ์ค. ํ์ค ๋ถ์ฐ ์์คํ ์ ๋ค์ด์ด๊ทธ๋จ. ๋ถ์ฐ ์์คํ ์ ์กฐ์ ํ๋ ๋ฐ ์ด๋ ค์์ด ์์ต๋๋ค. ์ ํ์ ์ธ ์กฐ์ ๋ฌธ์ . ZooKeeper ๋์์ธ์ ๊ธฐ๋ณธ ์์น. ZooKeeper ๋ฐ์ดํฐ ๋ชจ๋ธ. znode ํ๋๊ทธ. ์ธ์ . ํด๋ผ์ด์ธํธ API. ๊ธฐ๋ณธ ์์(๊ตฌ์ฑ, ๊ทธ๋ฃน ๋ฉค๋ฒ์ญ, ๋จ์ ์ ๊ธ, ๋ฆฌ๋ ์ ํ, ๋ฌด๋ฆฌ ํจ๊ณผ ์๋ ์ ๊ธ) ZooKeeper ์ํคํ ์ฒ. ์ฃผํคํผ DB. ZAB. ์์ฒญ ์ฒ๋ฆฌ๊ธฐ.
์ค๋์ ZooKeeper์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ์ด๊ฒ์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ๋ค๋ฅธ Apache Hadoop ์ ํ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ก๊ณ ๊ฐ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋จ์๋ฅผ ๋ฌ์ฌํฉ๋๋ค.
์ด์ ์ ์ฐ๋ฆฌ๋ ๊ทธ๊ณณ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ, ์ ์ฅ ๋ฐฉ๋ฒ, ์ฆ ์ด๋ป๊ฒ๋ ์ฌ์ฉํ๊ณ ์์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ฃผ๋ก ์ด์ผ๊ธฐํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ ์ ๋ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ๋ํด ์กฐ๊ธ ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค. ZooKeeper๋ ์ด ๋ฌธ์ ๋ฅผ ๋จ์ํํ ์ ์๋ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค. ์ด๋ ๋ถ์ฐ ์์คํ , ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก์ธ์ค ์ํธ ์์ฉ์ ์กฐ์ ํ๊ธฐ ์ํ ์ผ์ข ์ ์๋น์ค์ ๋๋ค.
๊ทธ๋ฌํ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํ ํ์์ฑ์ ๋งค์ผ ์ ์ ๋ ์ปค์ง๊ณ ์์ผ๋ฉฐ, ์ด๊ฒ์ด ๋ฐ๋ก ์ฐ๋ฆฌ ๊ณผ์ ์ ์ ๋ถ์ ๋๋ค. ํํธ์ผ๋ก MapReduce์ ์ด ๊ธฐ์ฑ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ณต์ก์ฑ์ ์ํํ๊ณ ํ๋ก๊ทธ๋๋จธ๊ฐ ํ๋ก์ธ์ค์ ์ํธ ์์ฉ ๋ฐ ์กฐ์ ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ์์๋ฅผ ์์ฑํ์ง ์์๋ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐ๋ฉด์ ์ด๊ฒ์ด ์ด์จ๋ ์ํ๋ ํ์๊ฐ ์๋ค๊ณ ๋ณด์ฅํ๋ ์ฌ๋์ ์๋ฌด๋ ์์ต๋๋ค. MapReduce ๋๋ ๊ธฐํ ๊ธฐ์ฑ ํ๋ ์์ํฌ๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํ ์ ์๋ ์ผ๋ถ ์ฌ๋ก๋ฅผ ํญ์ ์์ ํ ๋์ฒดํ์ง๋ ์์ต๋๋ค. MapReduce ์์ฒด์ ๊ธฐํ ์ฌ๋ฌ Apache ํ๋ก์ ํธ๋ฅผ ํฌํจํ๋ฉฐ ์ค์ ๋ก ์ด๋ค ํ๋ก์ ํธ๋ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ์ฝ๊ฒ ์์ฑํ๊ธฐ ์ํด ZooKeeper๋ฅผ ์์ฑํ์ต๋๋ค.
๋ชจ๋ Hadoop ๊ด๋ จ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Yahoo! ์ด์ ๊ณต์ Apache ์ ํ๋ฆฌ์ผ์ด์ ์ด๊ธฐ๋ ํฉ๋๋ค. HBase๋งํผ ์ ๊ทน์ ์ผ๋ก ๊ฐ๋ฐ๋์ง๋ ์์ต๋๋ค. JIRA HBase์ ๊ฐ๋ฉด ๋งค์ผ ์๋ง์ ๋ฒ๊ทธ ๋ณด๊ณ ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์ต์ ํํ๊ธฐ ์ํ ์๋ง์ ์ ์์ด ์์ต๋๋ค. ์ฆ, ํ๋ก์ ํธ ์ํ์ด ์ง์์ ์ผ๋ก ์งํ๋๊ณ ์์ต๋๋ค. ZooKeeper๋ ์๋์ ์ผ๋ก ๋จ์ํ ์ ํ์ธ ๋์์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉํ๊ธฐ๊ฐ ๋งค์ฐ ์ฝ๊ธฐ ๋๋ฌธ์ Hadoop ์ํ๊ณ ๋ด ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ค์ด ๋์์ต๋๋ค. ๊ทธ๋์ ์ด๋ป๊ฒ ์๋ํ๋์ง, ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์ดํดํ๊ธฐ ์ํด ๋ณต์ตํด ๋ณด๋ ๊ฒ์ด ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์ด๋ ๊ฐ์์์ ๋ณธ ์ฌ์ง์ ๋๋ค. ์ง๊ธ๊น์ง ์ฐ๋ฆฌ๊ฐ ๊ณ ๋ คํ ๋ชจ๋ ๊ฒ๊ณผ ์ง๊ตํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ํ์๋ ๋ชจ๋ ๊ฒ์ ์ด๋ ์ ๋ ZooKeeper์ ํจ๊ป ์๋ํฉ๋๋ค. ์ฆ, ์ด๋ฌํ ๋ชจ๋ ์ ํ์ ์ฌ์ฉํ๋ ์๋น์ค์ ๋๋ค. HDFS๋ MapReduce๋ ํน๋ณํ ์๋ํ๋ ์ ์ฌํ ์๋น์ค๋ฅผ ์์ฒด์ ์ผ๋ก ์์ฑํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ZooKeeper๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ๊ฐ๋ฐ ๋ฐ ์ค๋ฅ์ ๊ด๋ จ๋ ์ผ๋ถ ์์ ์ ๋จ์ํํฉ๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ด ์ด๋์ ์ค๋๊ฐ? ์๋ก ๋ค๋ฅธ ์ปดํจํฐ์์ ๋ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณ๋ ฌ๋ก ์คํํ๊ณ ์ด๋ฅผ ๋ฌธ์์ด์ด๋ ๋ฉ์๋ก ์ฐ๊ฒฐํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์ ๋ ๋คํธ์ํฌ๊ฐ ์ ๋ขฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ํธ๋ํฝ์ ์ค๋ํํ๊ฑฐ๋ ๋ฎ์ ์์ค์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง, ํด๋ผ์ด์ธํธ๊ฐ ๋คํธ์ํฌ์์ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ์ดํด๋ณด๋ฉด ์ผ๋ถ ํจํท์ด ์์ค๋๊ฑฐ๋ ๋ค์ ์ ์ก๋๋ ๊ฒ์ ์ข ์ข ๋ณผ ์ ์์ต๋๋ค. ํน์ ์ธ์ ์ ์ค์ ํ๊ณ ๋ฉ์์ง ์ ๋ฌ์ ๋ณด์ฅํ ์ ์๋ TCP ํ๋กํ ์ฝ์ด ๋ฐ๋ช ๋ ๊ฒ์ ์๋ฌด๊ฒ๋ ์๋๋๋ค. ๊ทธ๋ฌ๋ ์ด์จ๋ TCP์กฐ์ฐจ๋ ํญ์ ๋น์ ์ ๊ตฌํ ์๋ ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์๋ ์๊ฐ ์ด๊ณผ๊ฐ ์์ต๋๋ค. ๋คํธ์ํฌ๊ฐ ์ ์ ๋์ ์ค๋จ๋ ์๋ ์์ต๋๋ค. ๊ทธ๋ฅ ๊น๋ฐ์ผ ์๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ชจ๋ ๊ฒ์ ๋คํธ์ํฌ์ ์ ๋ขฐ์ฑ์ ์ ๋ขฐํ ์ ์๋ค๋ ์ฌ์ค๋ก ์ด์ด์ง๋๋ค. ์ด๋ ๋คํธ์ํฌ๊ฐ ์๊ณ ๋ฉ๋ชจ๋ฆฌ์ ๋ ์์ ์ ์ธ ๋ฐ์ดํฐ ๊ตํ ๋ฒ์ค๊ฐ ์๋ ํ๋์ ์ปดํจํฐ๋ ํ๋์ ์ํผ์ปดํจํฐ์์ ์คํ๋๋ ๋ณ๋ ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๊ฒ๊ณผ์ ์ฃผ์ ์ฐจ์ด์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด์ ์ ๋๋ค.
๋ฌด์๋ณด๋ค๋ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ ๋ ํญ์ ํน์ ์ง์ฐ ์๊ฐ์ด ๋ฐ์ํฉ๋๋ค. ๋์คํฌ์๋ ์์ง๋ง ๋คํธ์ํฌ์๋ ๋ ๋ง์ ๊ฒ์ด ์์ต๋๋ค. ์ง์ฐ ์๊ฐ์ ์ฝ๊ฐ์ ์ง์ฐ ์๊ฐ์ผ๋ก, ์๊ฑฐ๋ ์๋นํ ํด ์ ์์ต๋๋ค.
๋คํธ์ํฌ ํ ํด๋ก์ง๊ฐ ๋ณ๊ฒฝ๋๊ณ ์์ต๋๋ค. ํ ํด๋ก์ง๋ ๋ฌด์์ ๋๊น? ์ด๊ฒ์ ๋คํธ์ํฌ ์ฅ๋น์ ๋ฐฐ์น์ ๋๋ค. ๋ฐ์ดํฐ ์ผํฐ๊ฐ ์๊ณ , ๊ฑฐ๊ธฐ์ ์์๋ ๋์ด ์๊ณ , ์์ด๊ฐ ์์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ๋ค์ ์ฐ๊ฒฐํ๊ฑฐ๋ ์ด๋ํ ์ ์์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. IP ์ด๋ฆ์ด ๋ณ๊ฒฝ๋๊ณ ํธ๋ํฝ์ด ์ด๋ํ๋ ๋ผ์ฐํ ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด ์ ๋ํ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๋คํธ์ํฌ๋ ์ฅ๋น ์ธก๋ฉด์์๋ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์ค์ ๋ก ์ฐ๋ฆฌ ๋คํธ์ํฌ ์์ง๋์ด๋ค์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ด๋ถ์ ๋ํ ์ ๋ฐ์ดํธ๋ฅผ ์ ๋ง ์ข์ํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ฐ์๊ธฐ ์๋ก์ด ํ์จ์ด๊ฐ ๋์๊ณ ์ผ๋ถ Hadoop ํด๋ฌ์คํฐ์๋ ํน๋ณํ ๊ด์ฌ์ด ์์์ต๋๋ค. ๊ทธ๋ค์ ์์ ์ ์ง์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ค์๊ฒ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋คํธ์ํฌ๊ฐ ์๋ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๊ทธ๋ค์ ๊ฑฐ๊ธฐ์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ค์ ์ ๋ก๋ํ๊ณ ํ๋์จ์ด์์ ํ๋์ฑ์ ์ํํ๊ณ ํ๋์จ์ด๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ณ๊ฒฝ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ์ด๋ป๊ฒ ๋ ๊ณ ๋ คํด์ผํฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋ณดํต ์ด๋ค ์ด์ ์์์ธ์ง ๋๋์ ๋ฐ์ดํฐ๋ก ์์ ์ ์์ํ๋ ์ฌ๋๋ค์ ์ธํฐ๋ท์ด ๋ฌดํํ๋ค๊ณ ๋ฏฟ์ต๋๋ค. ๊ฑฐ๊ธฐ์ ๋ช ํ ๋ผ๋ฐ์ดํธ์ ํ์ผ์ด ์์ผ๋ฉด ์๋ฒ๋ ์ปดํจํฐ๋ก ๊ฐ์ ธ๊ฐ์ ๋ค์์ ์ฌ์ฉํ์ฌ ์ด ์ ์์ต๋๋ค. ๋ฐฉ๋ฒ ๊ทธ๋ฆฌ๊ณ ์ง์ผ๋ณด์ธ์. ๋ ๋ค๋ฅธ ์ค๋ฅ๊ฐ ์์ต๋๋ค. ์ ๋ ฅ ๋ก๊ทธ๋ฅผ ๋ณด์ธ์. ์์ข์ผ๋๊น ์ ๋ ํ์ง ๋ง์ธ์. Vim์ ๋ชจ๋ ๊ฒ์ ๋ฒํผ๋งํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ํนํ ์ด ๋ก๊ทธ๋ฅผ ํ์ํ๊ณ ๋ฌด์ธ๊ฐ๋ฅผ ์ฐพ๊ธฐ ์์ํ ๋ ๋ชจ๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํ์ธ์. ์ํ์ก์ง๋ง ๊ณ ๋ คํด ๋ณผ ๊ฐ์น๊ฐ ์๋ ๊ฒ๋ค์ ๋๋ค.
ํ๋์ ํ๋ก์ธ์๊ฐ ์๋ ํ๋์ ์ปดํจํฐ์์ ์คํ๋๋ ํ๋์ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๊ฒ์ด ๋ ์ฝ์ต๋๋ค.
์์คํ ์ด ์ฑ์ฅํ๋ฉด ๋ชจ๋ ๊ฒ์ ๋ณ๋ ฌํํ๊ณ ์ปดํจํฐ๋ฟ๋ง ์๋๋ผ ํด๋ฌ์คํฐ์์๋ ๋ณ๋ ฌํํ๋ ค๊ณ ํฉ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ์กฐ์ ํฉ๋๊น? ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ก ์ํธ ์์ฉํ์ง ์์ ์๋ ์์ง๋ง ์ฌ๋ฌ ์๋ฒ์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์ผ์ด ์ ์งํ๋๊ณ ์๋์ง ๋ชจ๋ํฐ๋งํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์๋ฅผ ๋ค์ด, ์ธํฐ๋ท์ ํตํด ๋ฌด์ธ๊ฐ๋ฅผ ๋ณด๋ ๋๋ค. ์๋ฅผ ๋ค์ด ์ผ์ข ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ก๊ทธ ๋ฑ ์ด๋๊ฐ์ ์์ ์ ์ํ์ ๋ํด ๊ธฐ๋กํ ๋ค์ ์ด ๋ก๊ทธ๋ฅผ ์ง๊ณํ๊ณ ์ด๋๊ฐ์์ ๋ถ์ํด์ผ ํฉ๋๋ค. ๋ํ ํ๋ก์ธ์ค๊ฐ ์๋ํ๊ณ ์๋ ์ค์ธ์ง, ๊ฐ์๊ธฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ถฉ๋์ด ๋ฐ์ํ๋์ง ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํด๋น ํ๋ก์ธ์ค๋ฅผ ์ผ๋ง๋ ๋นจ๋ฆฌ ์ ์ ์์ต๋๊น?
์ด ๋ชจ๋ ๊ฒ์ ์ ์ํ๊ฒ ๋ชจ๋ํฐ๋งํ ์ ์๋ค๋ ๊ฒ์ ๋ถ๋ช ํฉ๋๋ค. ์ด๊ฒ๋ ์ข์ง๋ง ๋ชจ๋ํฐ๋ง์ ์ต๊ณ ์์ค์์ ์ผ๋ถ ํญ๋ชฉ์ ๋ชจ๋ํฐ๋งํ ์ ์๋ ์ ํ์ ์ธ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด ์๋ก์๊ฒ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํด ํ๋ก์ธ์ค๊ฐ ์๋ก ์ํธ ์์ฉํ๊ธฐ ์์ํ๋ ค๋ฉด ์ง๋ฌธ๋ ๋ฐ์ํฉ๋๋ค. ์ด๋ป๊ฒ ์ด๋ฐ ์ผ์ด ๋ฐ์ํฉ๋๊น? ์ด๋ค ์ข ๋ฅ์ ๊ฒฝ์ ์กฐ๊ฑด์ด ๋ฐ์ํฉ๋๊น? ์๋ก ๋ฎ์ด์ฐ๊ฒ ๋ฉ๋๊น? ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ๋์ฐฉํฉ๋๊น? ๋์ค์ ์์ค๋๋ ๊ฒ์ด ์์ต๋๊น? ์ผ์ข ์ ํ๋กํ ์ฝ ๋ฑ์ ๊ฐ๋ฐํด์ผ ํฉ๋๋ค.
์ด๋ฌํ ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ์กฐ์ ํ๋ ๊ฒ์ ์ฌ์ํ ์ผ์ด ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฐ๋ฐ์๊ฐ ๋ ๋ฎ์ ์์ค์ผ๋ก ๋ด๋ ค๊ฐ ์ฒ์๋ถํฐ ์์คํ ์ ์์ฑํ๊ฑฐ๋ ์ฒ์๋ถํฐ ์์ฑํ์ง ์๋๋ก ๊ฐ์ํ์ง๋ง ์ด๋ ๊ทธ๋ ๊ฒ ๊ฐ๋จํ์ง ์์ต๋๋ค.
์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐํด๋ด๊ฑฐ๋ ์ฌ์ง์ด ๊ตฌํํ๋๋ผ๋ ํจ๊ณผ๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฏ๋ก ์ฆ์ ํ๊ธฐํ์ญ์์ค. ์ฌ๊ธฐ์๋ ์ ๊ณตํ๋ ๊ฒ์ ์์ด๋ฒ๋ฆฐ ๋ง์ ์ค๋ฅ๊ฐ ํฌํจ๋์ด ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๋ถ์์ ํ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฏ๋ก ์ฌ๊ฐํ ์ฉ๋๋ก ์ฌ์ฉํ์ง ๋ง์ญ์์ค. ์กด์ฌํ๋ ๋ชจ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋งค์ฐ ์ค๋ ์๊ฐ ๋์ ํ ์คํธ๋ฅผ ๊ฑฐ์ณค๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ปค๋ฎค๋ํฐ์ ์ํด ๋์ฒญ๋์์ต๋๋ค. ์ด๊ฒ์ ๋ณ๋์ ์ฃผ์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ด๋ค ์ข ๋ฅ์ ํ๋ก์ธ์ค ๋๊ธฐํ๋ฅผ ์ง์ ๊ตฌํํ์ง ์๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค๋ฉด ์ด๋ฅผ ์ํํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ํ๋ฉด ์ด๋ ๋งค์ฐ ๋ณต์กํ๊ณ ์ง์์ ์ผ๋ก ์ค๋ฅ๋ฅผ ๊ฒ์ํ๋ ๋ถ์์ ํ ๊ฒฝ๋ก๋ก ์ด์ด์ง๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ค๋์ ZooKeeper์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค. ํํธ์ผ๋ก๋ ํ๋ ์์ํฌ์ด๊ณ , ๋ค๋ฅธ ํํธ์ผ๋ก๋ ๊ฐ๋ฐ์์ ์ถ์ ๋ ์ฝ๊ฒ ๋ง๋ค๊ณ ํ๋ก์ธ์ค์ ๋ ผ๋ฆฌ ๊ตฌํ๊ณผ ์กฐ์ ์ ์ต๋ํ ๋จ์ํํ๋ ์๋น์ค์ ๋๋ค.
ํ์ค ๋ถ์ฐ ์์คํ ์ด ์ด๋ค ๋ชจ์ต์ผ์ง ๊ธฐ์ตํด ๋ด ์๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ ๊ฒ์ ๋๋ค - HDFS, HBase. ์์ปค์ ์ฌ๋ ์ด๋ธ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ง์คํฐ ํ๋ก์ธ์ค๊ฐ ์์ต๋๋ค. ๊ทธ๋ ์์ ์กฐ์ ๋ฐ ๋ถ์ฐ, ์์ ์ ๋ค์ ์์, ์ ์์ ์ ์์ ๋ฐ ๋ก๋ ๋ถ์ฐ์ ๋ด๋นํฉ๋๋ค.
๋ ๋ฐ์ ๋ ๊ธฐ๋ฅ์ ์กฐ์ ์๋น์ค์ ๋๋ค. ์ฆ, ์กฐ์ ์์ ์์ฒด๋ฅผ ๋ณ๋์ ํ๋ก์ธ์ค๋ก ์ด๋ํ๊ณ ๋ง์คํฐ๊ฐ ์คํจํ ์ ์์ผ๋ฏ๋ก ์ผ์ข ์ ๋ฐฑ์ ๋๋ ๋๊ธฐ ๋ง์คํฐ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์คํฐ๊ฐ ์ฐ๋ฌ์ง๋ฉด ์ฐ๋ฆฌ ์์คํ ์ด ์๋ํ์ง ์์ต๋๋ค. ๋ฐฑ์ ์ ์คํ ์ค์ ๋๋ค. ์ผ๋ถ์์๋ ๋ง์คํฐ๋ฅผ ๋ฐฑ์ ์ ๋ณต์ ํด์ผ ํ๋ค๊ณ ๋งํฉ๋๋ค. ์ด๋ ์กฐ์ ์๋น์ค์ ์ํ๋ ์๋ ์์ต๋๋ค. ํ์ง๋ง ์ด ๋ค์ด์ด๊ทธ๋จ์์๋ ๋ง์คํฐ ์์ ์ด ์์ ์ ์กฐ์ ์ ๋ด๋นํ๋ฉฐ, ์ฌ๊ธฐ์๋ ์๋น์ค๊ฐ ๋ฐ์ดํฐ ๋ณต์ ํ๋์ ์กฐ์ ํฉ๋๋ค.
๋ณด๋ค ๊ณ ๊ธ ์ต์ ์ ์ผ๋ฐ์ ์ผ๋ก ์ํ๋๋ ๊ฒ์ฒ๋ผ ๋ชจ๋ ์กฐ์ ์ด ๋น์ฌ ์๋น์ค์์ ์ฒ๋ฆฌ๋๋ ๊ฒฝ์ฐ์ ๋๋ค. ๊ทธ๋ ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ๋์ง ํ์ธํ๋ ์ฑ ์์ ์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ญ๊ฐ๊ฐ ์๋ํ์ง ์์ผ๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ํด ์์๋ด๊ณ ์ด ์ํฉ์ ํผํ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค. ์ด์จ๋ ์ฐ๋ฆฌ์๊ฒ๋ ์ฌ๋ ์ด๋ธ์ ์ํธ ์์ฉํ๊ณ ์ผ๋ถ ์๋น์ค๋ฅผ ํตํด ๋ฐ์ดํฐ, ์ ๋ณด, ๋ฉ์์ง ๋ฑ์ ๋ณด๋ผ ์ ์๋ ๋ง์คํฐ๊ฐ ๋จ์ ์์ต๋๋ค.
๋ง์คํฐ๊ฐ ์์ ๋ ๋ชจ๋ ๋ ธ๋๋ ๋์์ด ๋ค๋ฅธ ๋ง์คํฐ ์ฌ๋ ์ด๋ธ๊ฐ ๋ฉ๋๋ค. ํ์ง๋ง ์ฌ์ ํ ์๋ก ์ํธ ์์ฉํด์ผ ํ๋ฏ๋ก ์ด๋ฌํ ์์ ์ ์กฐ์ ํ๊ธฐ ์ํ ์๋น์ค๊ฐ ์์ง ๋จ์ ์์ต๋๋ค. ์๋ง๋ ์ด ์์น์ ๋ฐ๋ผ ์๋ํ๋ Cassandra๊ฐ ์ด ๊ณํ์ ์ ํฉํ ๊ฒ์ ๋๋ค.
์ด๋ค ๊ณํ ์ค ์ด๋ ๊ฒ์ด ๋ ํจ๊ณผ์ ์ธ์ง ๋งํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ๊ฐ๊ฐ์๋ ์ฅ๋จ์ ์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค์น๊ณผ ๊ด๋ จํ์ฌ ์ด๋ค ๊ฒ์ ๋๋ ค์ํ ํ์๊ฐ ์์ต๋๋ค. ์๋ํ๋ฉด ์ค์ต์์ ์ ์ ์๋ฏ์ด ๊ทธ๋ ์ง์์ ์ผ๋ก ๋ด์ฌํ๋ ๋ฐ ๊ทธ๋ค์ง ๋ฏผ๊ฐํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฌ๊ธฐ์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ณ๋์ ๊ฐ๋ ฅํ ๋ ธ๋์์ ์ด ์๋น์ค๋ฅผ ํธ์คํ ํ๊ธฐ ์ํ ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ ์ ํํ์ฌ ์ถฉ๋ถํ ๋ฆฌ์์ค๋ฅผ ํ๋ณดํ์ฌ ๊ฐ๋ฅํ๋ฉด ์ฌ์ฉ์๊ฐ ํด๋น ๋ ธ๋์ ์ก์ธ์คํ์ง ๋ชปํ๋๋ก ํ์ฌ ์ค์๋ก ์ด ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ์ง ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋์์ ์ด๋ฌํ ์ฒด๊ณ์์๋ ๋ง์คํฐ ํ๋ก์ธ์ค์์ ์์ ์๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค. ์ฆ, ๊ตฌํ ์ธก๋ฉด์์ ์ด ์ฒด๊ณ๊ฐ ๋ ๊ฐ๋จํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๊ณํ(์)์ ์๋ง๋ ๋ ๋ณต์กํ์ง๋ง ๋ ์์ ์ ์ผ ๊ฒ์ ๋๋ค.
๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋ถ๋ถ์ ์ธ ์คํจ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ฐ๋ฆฌ๊ฐ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๋ ์ด๋ค ์ฌ๊ณ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฉ์์ง๋ฅผ ๋ณด๋ธ ์ฌ๋์ ์์ ์ ๋ฉ์์ง๊ฐ ์์ ๋์๋์ง, ์์ ์ ์ธก์์๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋์ง ์ ์ ์์ผ๋ฉฐ ๋ฉ์์ง๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋์๋์ง ์ ์ ์์ต๋๋ค. ์ฆ, ๊ทธ๋ ์ด๋ ํ ํ์ธ๋ ๋ฐ์ง ๋ชปํ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ด ์ํฉ์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ด ๋ฉ์์ง๋ฅผ ๋ค์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ์ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ์์ ์์ ์ํ๊ฐ ๋ณ๊ฒฝ๋์๋์ง ์ฌ๋ถ๋ ๊ณ ๋ ค๋์ง ์์ต๋๋ค. ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ๋ ๋ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค.
ZooKeeper๋ ๊ทธ๋ฌํ ๊ฑฐ๋ถ์ ๋์ฒํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ์ฐ๋ฆฌ์ ์ถ์ ๋ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
์์ ์ธ๊ธํ๋ฏ์ด ์ด๋ ๋ค์ค ์ค๋ ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๊ฒ๊ณผ ์ ์ฌํ์ง๋ง ์ฃผ์ ์ฐจ์ด์ ์ ์๋ก ๋ค๋ฅธ ์์คํ ์ ๊ตฌ์ถํ๋ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ํต์ ํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋คํธ์ํฌ๋ผ๋ ๊ฒ์ ๋๋ค. ๋ณธ์ง์ ์ผ๋ก ์ด๋ ๋น๊ณต์ ์ํคํ ์ฒ์ ๋๋ค. ํ ๋จธ์ ์์ ์คํ๋๋ ๊ฐ ํ๋ก์ธ์ค๋ ์๋น์ค๋ ๋๊ตฌ์๋ ๊ณต์ ํ์ง ์๋ ์์ฒด ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ, ํ๋ก์ธ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
ํ ์ปดํจํฐ์์ ๋ค์ค ์ค๋ ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ฉด ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์์ต๋๋ค. ๊ฑฐ๊ธฐ์ ์ปจํ ์คํธ ์ค์์น๊ฐ ์๊ณ ํ๋ก์ธ์ค๊ฐ ์ ํ๋ ์ ์์ต๋๋ค. ์ด๋ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ํํธ์ผ๋ก๋ ํด๋ฌ์คํฐ์ ํ๋ก๊ทธ๋จ์๋ ๊ทธ๋ฐ ๊ฒ์ด ์์ง๋ง ๋คํธ์ํฌ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ถ์ฐ ์์คํ ์ ์์ฑํ ๋ ๋ฐ์ํ๋ ์ฃผ์ ๋ฌธ์ ๋ ๊ตฌ์ฑ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ผ์ข ์ ์ ์ฒญ์๋ฅผ ์์ฑํ๊ณ ์์ต๋๋ค. ๊ฐ๋จํ๋ค๋ฉด ์ฝ๋์ ๋ชจ๋ ์ข ๋ฅ์ ์ซ์๋ฅผ ํ๋์ฝ๋ฉํ์ง๋ง ์ด๋ ๋ถํธํฉ๋๋ค. ์๋ํ๋ฉด 0.5์ด์ ์๊ฐ ์ด๊ณผ ๋์ 1์ด์ ์๊ฐ ์ด๊ณผ๋ฅผ ์ํ๋ค๊ณ ๊ฒฐ์ ํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์ปดํ์ผํ๊ณ ๋ชจ๋ ๊ฒ์ ๋ค์ ํผ์น์ญ์์ค. ํ๋์ ๋จธ์ ์ ์์ ๋๋ ๋ค์ ์์ํ๋ฉด ๋ฌธ์ ๊ฐ ๋์ง๋ง, ๋จธ์ ์ด ๋ง์ผ๋ฉด ๋ชจ๋ ๊ฒ์ ์ง์์ ์ผ๋ก ๋ณต์ฌํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๋ ค๊ณ ๋ ธ๋ ฅํด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์๋ ์์คํ ํ๋ก์ธ์ค์ ์ ์ ๊ตฌ์ฑ์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด๋ ์ ์ ์ผ๋ก๋ ์๋์ง๋ง ์ด์ ์ฒด์ ๊ด์ ์์ ๋ณผ ๋ ํ๋ก์ธ์ค์ ๋ํ ์ ์ ๊ตฌ์ฑ์ผ ์ ์์ต๋๋ค. ์ฆ, ๊ฐ๋จํ ์ทจํ๊ณ ์ ๋ฐ์ดํธํ ์ ์๋ ๊ตฌ์ฑ์ผ ์ ์์ต๋๋ค.
๋์ ๊ตฌ์ฑ๋ ์์ต๋๋ค. ์ด๊ฒ๋ค์ ์ฐ๋ฆฌ๊ฐ ๊ฑฐ๊ธฐ์์ ์ ํ๋๋๋ก ์ฆ์์์ ๋ณ๊ฒฝํ๋ ค๋ ๋งค๊ฐ๋ณ์์ ๋๋ค.
์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋ฌด์์ ๋๊น? ๊ตฌ์ฑ์ ์ ๋ฐ์ดํธํ๊ณ ์ถ์ํ๋๋ฐ ๊ทธ๋ผ ์ด๋ป๊ฒ ๋ ๊น์? ๋ฌธ์ ๋ ์ฐ๋ฆฌ๊ฐ ๊ตฌ์ฑ์ ๋กค์์ํ์ง๋ง ์๋ก์ด ์ฌํญ์ ์์ด๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์ ๊ตฌ์ฑ์ด ๊ทธ๋๋ก ๋จ์ ์๋ค๋ ์ ์ผ ์ ์์ต๋๋ค. ๋์งธ, ์ถ์ํ๋ ๋์ ์ผ๋ถ ์์น์์๋ ๊ตฌ์ฑ์ด ์ ๋ฐ์ดํธ๋์์ง๋ง ๋ค๋ฅธ ์์น์์๋ ์ ๋ฐ์ดํธ๋์ง ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์์คํ ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ ํ๋ก์ธ์ค๊ฐ ์๋ก์ด ๊ตฌ์ฑ๊ณผ ์ด์ ๊ตฌ์ฑ์ผ๋ก ๋ค์ ์์๋์์ต๋๋ค. ์ด๋ก ์ธํด ๊ตฌ์ฑ ๊ด์ ์์ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ผ๊ด๋์ง ์์ ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ผ๋ฐ์ ์ ๋๋ค. ๋์ ๊ตฌ์ฑ์ ๊ฒฝ์ฐ ์ฆ์ ๋ณ๊ฒฝ๋ ์ ์๋ค๋ ์ ์ ์๋ฏธํ๋ฏ๋ก ๋ ๊ด๋ จ์ฑ์ด ๋์ต๋๋ค.
๋ ๋ค๋ฅธ ๋ฌธ์ ๋ ๊ทธ๋ฃน ๋ฉค๋ฒ์ญ์ ๋๋ค. ์ฐ๋ฆฌ๋ ํญ์ ๋ช๋ช ์์ปค ์ธํธ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ฐ๋ฆฌ๋ ํญ์ ๊ทธ๋ค ์ค ๋๊ฐ ์ด์ ์๊ณ , ๋๊ฐ ์ฃฝ์๋์ง ์๊ณ ์ถ์ดํฉ๋๋ค. ๋ง์คํฐ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ณ์ฐ์ ์คํํ๊ฑฐ๋ ๋ฐ์ดํฐ ์์ ์ ์ํํ ์ ์๋๋ก ํด๋ผ์ด์ธํธ๋ก ๋ฆฌ๋๋ ์ ํ ์ ์๋ ์์ ์์ ๊ทธ๋ ์ง ์์ ์์ ์๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค. ์ง์์ ์ผ๋ก ๋ฐ์ํ๋ ๋ฌธ์ ๋ ํด๋ฌ์คํฐ์์ ๋๊ฐ ์ผํ๊ณ ์๋์ง ์์์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ ๋ค๋ฅธ ์ ํ์ ์ธ ๋ฌธ์ ๋ ๋๊ฐ ์ฑ ์์์ธ์ง ์๊ณ ์ถ์ ๋ ๋ฆฌ๋ ์ ์ถ์ ๋๋ค. ํ ๊ฐ์ง ์๋ ์ฐ๊ธฐ ์์ ์ ์์ ํ ๋ค์ ์ด๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ณต์ ํ๋ ์ผ๋ถ ํ๋ก์ธ์ค๊ฐ ์๋ ๋ณต์ ์ ๋๋ค. ๊ทธ๋ ์ง๋์๊ฐ ๋ ๊ฒ์ด๊ณ , ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์ ๊ทธ์๊ฒ ๋ณต์ข ํ๊ณ ๊ทธ๋ฅผ ๋ฐ๋ฅผ ๊ฒ์ ๋๋ค. ๋ ๋ช ์ ๋ฆฌ๋๊ฐ ์ ์ถ๋๋ ์ผ์ด ๋ฐ์ํ์ง ์๋๋ก ๋ชจ๋ ์ฌ๋์ด ๋ชจํธํ์ง ์๋๋ก ํ๋ก์ธ์ค๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
์ํธ ๋ฐฐํ์ ์ธ ์ก์ธ์ค๋ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ฌธ์ ๋ ๋ ๋ณต์กํฉ๋๋ค. ๋ค์ค ์ค๋ ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ์ผ๋ถ ๋ฆฌ์์ค(์: ๋ฉ๋ชจ๋ฆฌ ์ )์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ๊ณ ํ๋์ ์ค๋ ๋์์๋ง ์ํํ๋ ค๋ ๊ฒฝ์ฐ ๋ฎคํ ์ค์ ๊ฐ์ ๊ฒ์ด ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ฆฌ์์ค๋ ์ข ๋ ์ถ์์ ์ธ ๊ฒ์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋คํธ์ํฌ์ ์ฌ๋ฌ ๋ ธ๋์ ์๋ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ ๋ฆฌ์์ค์ ๋ํ ๋ ์ ์ ์ธ ์ก์ธ์ค ๊ถํ๋ง ๋ฐ์์ผ ํ๋ฉฐ, ๋ชจ๋ ์ฌ๋์ด ๋ฆฌ์์ค๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๊ฑฐ๊ธฐ์ ๋ฌด์ธ๊ฐ๋ฅผ ์ธ ์ ์๋๋ก ํด์๋ ์ ๋ฉ๋๋ค. ์ด๊ฒ์ ์์ ์๋ฌผ์ ์ ๋๋ค.
ZooKeeper๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ์ด๋ ์ ๋ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ํตํด ์ด๋ป๊ฒ ์ด๋ฅผ ์ํํ ์ ์๋์ง ์๋ฅผ ํตํด ๋ณด์ฌ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ฐจ๋จ ํ๋ฆฌ๋ฏธํฐ๋ธ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ๋ฉด ์ด ํ๋ฆฌ๋ฏธํฐ๋ธ๋ ์ด๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์์ต๋๋ค. ์๋ง๋ ์ด ์์ ์ ๋น๋๊ธฐ์์ผ๋ก ์๋ํ๋ฏ๋ก ํ๋ก์ธ์ค๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ์ค๋จ๋์ง ์๋๋ก ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋งค์ฐ ์ ์ฉํ ๊ฒ์ ๋๋ค.
๋ชจ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ผ๋ฐ ๋๊ธฐ์ด์ ์์๋๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ๋ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ณด๊ธฐ ์ ์ ์ผ๋ถ ์ํ์ ๋ณ๊ฒฝ ์ฌํญ, ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์๋ฆผ์ ๋ฐ์ ์ ์์ต๋๋ค.
ZooKeeper๋ ๋ ๊ฐ์ง ๋ชจ๋๋ก ์๋ํ ์ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ํ๋์ ๋ ธ๋์์ ๋ ๋ฆฝ ์คํํ์ ๋๋ค. ์ด๋ ํ ์คํธ์ ํธ๋ฆฌํฉ๋๋ค. ๋ํ ์ํ๋ ์์ ์๋ฒ์์ ํด๋ฌ์คํฐ ๋ชจ๋๋ก ์๋ํ ์๋ ์์ต๋๋ค. 100๊ฐ์ ์์คํ ์ผ๋ก ๊ตฌ์ฑ๋ ํด๋ฌ์คํฐ๊ฐ ์๋ ๊ฒฝ์ฐ 100๊ฐ์ ์์คํ ์์ ์๋ํ ํ์๋ ์์ต๋๋ค. ZooKeeper๋ฅผ ์คํํ ์ ์๋ ์ฌ๋ฌ ๋จธ์ ์ ์ ํํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณ ๊ฐ์ฉ์ฑ์ ์์น์ ๊ณต์ธํฉ๋๋ค. ์คํ ์ค์ธ ๊ฐ ์ธ์คํด์ค์์ ZooKeeper๋ ๋ฐ์ดํฐ์ ์ ์ฒด ๋ณต์ฌ๋ณธ์ ์ ์ฅํฉ๋๋ค. ๋์ค์ ๊ทธ๊ฐ ์ด๋ป๊ฒ ํ๋์ง ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํ๊ฑฐ๋ ๋ถํ ํ์ง ์์ต๋๋ค. ํํธ์ผ๋ก๋ ๋ง์ด ์ ์ฅํ ์ ์๋ค๋ ์ ์ ๋ง์ด๋์ค์ด๊ณ , ๋ค๋ฅธ ํํธ์ผ๋ก๋ ๊ทธ๋ ๊ฒ ํ ํ์๊ฐ ์๋ค๋ ์ ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋๊ธฐ ์ํด ์ค๊ณ๋ ๊ฒ์ด ์๋๋๋ค.
๋ฐ์ดํฐ๋ ํด๋ผ์ด์ธํธ ์ธก์์ ์บ์๋ ์ ์์ต๋๋ค. ์ด๋ ์๋น์ค๋ฅผ ์ค๋จํ์ง ์๊ณ ๋์ผํ ์์ฒญ์ผ๋ก ๋ก๋ํ์ง ์๊ธฐ ์ํ ํ์ค ์์น์ ๋๋ค. ์ค๋งํธ ํด๋ผ์ด์ธํธ๋ ์ผ๋ฐ์ ์ผ๋ก ์ด์ ๋ํด ์๊ณ ์บ์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ๊ธฐ์์ ๋ญ๊ฐ๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค. ์ด๋ค ์ข ๋ฅ์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฐ๊ธฐ ์์ ์ฒ๋ฆฌ๋ฅผ ๋ด๋นํ๋ ์๋ก์ด ๋ฆฌ๋๊ฐ ์ ์ถ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํ๊ณ ์ถ์ต๋๋ค. ํ ๊ฐ์ง ํด๊ฒฐ์ฑ ์ ๋ฃจํ์ ๋ฃ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์๋น์ค์ ๋ํด ๋์์์ด ์ง๋ฌธํฉ๋๋ค. ๋ณ๊ฒฝ๋ ์ฌํญ์ด ์๋์? ๋ ๋ฒ์งธ ์ต์ ์ด ๋ ์ต์ ์ ๋๋ค. ์ด๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฌด์ธ๊ฐ ๋ณ๊ฒฝ๋์์์ ์๋ฆด ์ ์๋ ๊ฐ์ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ์ด๋ ๋ฆฌ์์ค ์ธก๋ฉด์์ ๋น์ฉ์ด ๋ ๋ค๊ณ ๊ณ ๊ฐ์๊ฒ ๋ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ZooKeeper๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์ ๋๋ค.
์๋ฒ๋ ZooKeeper ํ๋ก์ธ์ค ์์ฒด์ ๋๋ค.
Znode๋ ZooKeeper์ ํต์ฌ์ ๋๋ค. ๋ชจ๋ znode๋ ZooKeeper์ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ฉฐ ํธ๋ฆฌ ํํ์ ๊ณ์ธต ๋ค์ด์ด๊ทธ๋จ ํํ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์์ ์๋ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ์ผ๋ถ ์์ ์ด ํธ๋ฆฌ์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๋ ์ ๋ฐ์ดํธ/์ฐ๊ธฐ์ ๋๋ค. ๋๋ฌด๋ ํํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํด๋ผ์ด์ธํธ๊ฐ ํ๋์ ์์ฒญ์ ์๋ฃํ์ง ๋ชปํ๊ณ ์ฐ๊ฒฐ์ด ๋์ด์ก์ ์๋ ์์ง๋ง ZooKeeper์ ์ํธ ์์ฉํ๋ ์ธ์ ์ ์ค์ ํ ์ ์์ต๋๋ค.
ZooKeeper์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํ์ผ ์์คํ ๊ณผ ์ ์ฌํฉ๋๋ค. ํ์ค ๋ฃจํธ๊ฐ ์๊ณ ๋ฃจํธ์์ ๋์ค๋ ๋๋ ํ ๋ฆฌ๋ฅผ ํต๊ณผํ๋ ๊ฒ์ฒ๋ผ ์งํํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฒซ ๋ฒ์งธ ์์ค์ ์นดํ๋ก๊ทธ, ๋ ๋ฒ์งธ ์์ค์ ์นดํ๋ก๊ทธ์ ๋๋ค. ์ด๊ฒ์ ๋ชจ๋ znode์ ๋๋ค.
๊ฐ znode๋ ์ผ๋ฐ์ ์ผ๋ก 10KB์ ๊ฐ์ด ๊ทธ๋ฆฌ ํฌ์ง ์์ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ znode๋ ํน์ ์์ ์์์ ๊ฐ์ง ์ ์์ต๋๋ค.
Znode๋ ์ฌ๋ฌ ์ ํ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. ์์ฑ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ znode๋ฅผ ์์ฑํ ๋ ๊ทธ๊ฒ์ด ์ํด์ผ ํ๋ ์ ํ์ ์ง์ ํฉ๋๋ค.
๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ์์ ํ๋๊ทธ์ ๋๋ค. Znode๋ ์ธ์ ๋ด์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ ์ ์ค์ ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ธ์ ์ด ์ด์์๋ ํ ๊ณ์ ์กด์ฌํ ๊ฒ์ ๋๋ค. ์ด๋ ๋ถํ์ํ ๊ฒ์ ์์ฐํ์ง ์๊ธฐ ์ํด ํ์ํฉ๋๋ค. ์ด๋ ์ธ์ ๋ด์ ๋ฐ์ดํฐ ๊ธฐ๋ณธ ์์๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ์ค์ํ ์๊ฐ์๋ ์ ํฉํฉ๋๋ค.
๋ ๋ฒ์งธ ์ ํ์ ์์ฐจ ํ๋๊ทธ์ ๋๋ค. znode๋ก ๊ฐ๋ ๋์ ์นด์ดํฐ๋ฅผ ์ฆ๊ฐ์ํต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ํ๋ฆฌ์ผ์ด์ 1_5๊ฐ ํฌํจ๋ ๋๋ ํ ๋ฆฌ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฒซ ๋ฒ์งธ ๋ ธ๋๋ฅผ ์์ฑํ์ ๋ p_1์ ๋ฐ์๊ณ ๋ ๋ฒ์งธ ๋ ธ๋๋ p_2๋ฅผ ๋ฐ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋งค๋ฒ ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ๊ฒฝ๋ก์ ์ผ๋ถ๋ง ๋ํ๋ด๋ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์ ๋ฌํ๋ฉฐ, ๋ ธ๋ ์ ํ(์์ฐจ)์ ๋ํ๋ด๊ธฐ ๋๋ฌธ์ ์ด ์ซ์๋ ์๋์ผ๋ก ์ฆ๊ฐ๋ฉ๋๋ค.
์ผ๋ฐ znode. ๊ทธ๋ ๋ ํญ์ ์ด ๊ฒ์ด๋ฉฐ ์ฐ๋ฆฌ๊ฐ ๋งํ๋ ์ด๋ฆ์ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
๋ ๋ค๋ฅธ ์ ์ฉํ ์ ์ ๊ฐ์ ํ๋๊ทธ์ ๋๋ค. ์ด๋ฅผ ์ค์นํ๋ฉด ํด๋ผ์ด์ธํธ๋ ํน์ ๋ ธ๋์ ๋ํ ์ผ๋ถ ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ ํ ์ ์์ต๋๋ค. ๋์ค์ ์ด ์์ ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง ์์๋ฅผ ํตํด ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค. ZooKeeper ์์ฒด๋ ๋ ธ๋์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์์์ ํด๋ผ์ด์ธํธ์ ์๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ ์๋ฆผ์ด ์ผ๋ถ ์๋ก์ด ๋ฐ์ดํฐ์ ๋์ฐฉ์ ๋ณด์ฅํ์ง๋ ์์ต๋๋ค. ๊ทธ๋ค์ ๋จ์ง ๋ญ๊ฐ๊ฐ ๋ณ๊ฒฝ๋์๋ค๊ณ ๋ง ๋งํ๋ฏ๋ก ๋์ค์ ๋ณ๋์ ํธ์ถ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋น๊ตํด์ผ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ ๋งํ๋ฏ์ด ๋ฐ์ดํฐ์ ์์๋ ํฌ๋ก๋ฐ์ดํธ ๋จ์๋ก ๊ฒฐ์ ๋ฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋๊ณ ํ๋ ์กฐ์ ์๋ฒ์ด๊ธฐ ๋๋ฌธ์ ๋์ฉ๋ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ์๊ฐ ์์ต๋๋ค.
์ธ์ ์ ๋ํด ์กฐ๊ธ ๋ง์ ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์๋ฒ๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ์ธ์ ์๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์์ ์๋ฒ๋ก ํฌ๋ช ํ๊ฒ ์ด๋ํ ์ ์์ต๋๋ค. ๊ฝค ํธ๋ฆฌํฉ๋๋ค.
๊ฐ ์ธ์ ์๋ ์ผ์ข ์ ์๊ฐ ์ด๊ณผ๊ฐ ์์ต๋๋ค. ์ธ์ ์ ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ์ธ์ ์ค์ ์๋ฒ์ ๋ฌด์์ธ๊ฐ๋ฅผ ๋ณด๋ด๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ์ ์๋ฉ๋๋ค. ์๊ฐ ์ด๊ณผ ๋์ ์๋ฌด ๊ฒ๋ ์ ์กํ์ง ์์ผ๋ฉด ์ธ์ ์ด ์ค๋จ๋๊ฑฐ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ง์ ์ธ์ ์ ๋ซ์ ์ ์์ต๋๋ค.
๊ธฐ๋ฅ์ด ๋ง์ง๋ ์์ง๋ง ์ด API๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ํ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ณธ create ํธ์ถ์ znode๋ฅผ ์์ฑํ๊ณ ์ธ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ทจํฉ๋๋ค. ์ด๋ znode์ ๋ํ ๊ฒฝ๋ก์ด๋ฉฐ ๋ฃจํธ์์ ์ ์ฒด๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๊ฑฐ๊ธฐ๋ก ์ ์กํ๊ณ ์ถ์ ์ผ๋ถ ๋ฐ์ดํฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊น๋ฐ์ ์ข ๋ฅ. ๊ทธ๋ฆฌ๊ณ ์์ฑ ํ์๋ znode์ ๋ํ ๊ฒฝ๋ก๋ฅผ ๋ฐํํฉ๋๋ค.
๋์งธ, ์ญ์ ํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ค์ํ ์ ์ znode ๊ฒฝ๋ก ์ธ์ ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ๋ฒ์ ์ ์ง์ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ์ ์กํ ๋ฒ์ ์ด ์ค์ ๋ก ์กด์ฌํ๋ ๋ฒ์ ๊ณผ ๋์ผํ๋ฉด ํด๋น znode๊ฐ ์ญ์ ๋ฉ๋๋ค.
์ด ๋ฒ์ ์ ํ์ธํ๊ณ ์ถ์ง ์๋ค๋ฉด ๊ฐ๋จํ "-1" ์ธ์๋ฅผ ์ ๋ฌํ๋ฉด ๋ฉ๋๋ค.
์ ์งธ, znode๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ๋ ธ๋๊ฐ ์กด์ฌํ๋ฉด true๋ฅผ ๋ฐํํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด ๋ ธ๋๋ฅผ ๋ชจ๋ํฐ๋งํ ์ ์๋ ํ๋๊ทธ ๊ฐ์๊ฐ ๋ํ๋ฉ๋๋ค.
์กด์ฌํ์ง ์๋ ๋ ธ๋์๋ ์ด ํ๋๊ทธ๋ฅผ ์ค์ ํ๊ณ ๋ ธ๋๊ฐ ๋ํ๋ ๋ ์๋ฆผ์ ๋ฐ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋ํ ์ ์ฉํ ์ ์์ต๋๋ค.
๋ช ๊ฐ์ง ์ถ๊ฐ ๊ณผ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ. znode๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์ ํ ์ ์๋ค๋ ๊ฒ์ ๋ถ๋ช ํฉ๋๋ค. ๊น๋ฐ ๊ฐ์๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ ธ๋๊ฐ ์์ผ๋ฉด ์ค์น๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์กด์ฌํ๋ค๋ ๊ฒ์ ์ดํดํ ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ผ ํฉ๋๋ค.
๋ ์์ต๋๋ค ๋ฐ์ดํฐ ์ค์ . ์ฌ๊ธฐ์๋ ๋ฒ์ ์ ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์ ๋ฌํ๋ฉด ํน์ ๋ฒ์ ์ znode์ ์๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
์ด ๊ฒ์ฌ๋ฅผ ์ ์ธํ๋ ค๋ฉด "-1"์ ์ง์ ํ ์๋ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์ ์ฉํ ๋ฐฉ๋ฒ์ getChildren. ๋ํ ์ฌ๊ธฐ์ ์ํ ๋ชจ๋ znode์ ๋ชฉ๋ก์ ์ป์ ์๋ ์์ต๋๋ค. ํ๋๊ทธ ๊ฐ์๋ฅผ ์ค์ ํ์ฌ ์ด๋ฅผ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐฉ๋ฒ ๋๊ธฐํ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํ ๋ฒ์ ์ ์กํ ์ ์์ผ๋ฏ๋ก ๋ณ๊ฒฝ ๋ด์ฉ์ด ์ ์ฅ๋๊ณ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์์ ํ ๋ณ๊ฒฝ๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๋น์ ํ์๋ฉด ๋์คํฌ์ ๋ฌด์ธ๊ฐ๋ฅผ ์ฐ๋ write์ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ์๋ต์ด ๋ฐํ๋ ํ์๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ผ๋ค๋ ๋ณด์ฅ์ด ์์ต๋๋ค. ์ด์ ์ฒด์ ๊ฐ ๋ชจ๋ ๊ฒ์ด ๊ธฐ๋ก๋์๋ค๊ณ ํ์ ํ๋ ๊ฒฝ์ฐ์๋ ๋์คํฌ ์์ฒด์๋ ํ๋ก์ธ์ค๊ฐ ๋ฒํผ ๊ณ์ธต์ ํต๊ณผํ๊ณ ๊ทธ ํ์๋ง ๋ฐ์ดํฐ๊ฐ ๋์คํฌ์ ๋ฐฐ์น๋๋ ๋ฉ์ปค๋์ฆ์ด ์์ต๋๋ค.
๋๋ถ๋ถ ๋น๋๊ธฐ ํธ์ถ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ํด๋ผ์ด์ธํธ๋ ๋ค์ํ ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋๊ธฐ์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์์ง๋ง ์์ฐ์ฑ์ด ๋จ์ด์ง๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ ๋ ๊ฐ์ง ์์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ์ ๋ฐ์ดํธ/์ฐ๊ธฐ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์์ฑ, setData, ๋๊ธฐํ, ์ญ์ ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๊ธฐ๊ฐ ์กด์ฌํฉ๋๋ค, getData, getChildren.
์ด์ ๋ถ์ฐ ์์คํ ์์ ์์ ํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฌด์ธ๊ฐ์ ๊ตฌ์ฑ๊ณผ ๊ด๋ จ๋ฉ๋๋ค. ์๋ก์ด ์ผ๊พผ์ด ๋ํ๋ฌ์ต๋๋ค. ๊ธฐ๊ณ๋ฅผ ์ถ๊ฐํ๊ณ ํ๋ก์ธ์ค๋ฅผ ์์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ์ธ ๊ฐ์ง ์ง๋ฌธ์ด ์์ต๋๋ค. ZooKeeper์ ๊ตฌ์ฑ์ ์ด๋ป๊ฒ ์ฟผ๋ฆฌํ๋์? ๊ตฌ์ฑ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ด๋ป๊ฒ ๋ณ๊ฒฝํด์ผ ํฉ๋๊น? ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ฐ๊พผ ํ์ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ ธ๋์๋ค์ ๊ทธ๊ฒ์ ์ด๋ป๊ฒ ์ป์ต๋๊น?
ZooKeeper๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์์ ์ด ๋น๊ต์ ์ฝ์ต๋๋ค. ์๋ฅผ ๋ค์ด, znode ํธ๋ฆฌ๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ ธ๋๊ฐ ์์ผ๋ฉฐ, ์ฌ๊ธฐ์ ๊ตฌ์ฑ์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ์ถ๊ฐ ๋ ธ๋๋ฅผ ๋ง๋ญ๋๋ค. ์ด๋ ๋ณ๋์ ๋งค๊ฐ๋ณ์์ผ ์๋ ์๊ณ ์๋ ์๋ ์์ต๋๋ค. ํฌ๊ธฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ตฌ์ฑ ํฌ๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ๋ณด๊ดํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ๊ณ์ญ๋๋ค. ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ ธ๋์์ ์์ ์์ ๋ํ ๊ตฌ์ฑ์ ๊ฐ์ ธ์ต๋๋ค. ์ฐธ์ผ๋ก ์ค์ ํ์ธ์. ์ด๋ค ์ด์ ๋ก ์ด ๋ ธ๋๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ๋ ธ๋๊ฐ ๋ํ๋๊ฑฐ๋ ๋ณ๊ฒฝ๋ ๋ ์ด์ ๋ํด ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ญ๊ฐ๊ฐ ๋ณ๊ฒฝ๋์๋์ง ์๊ณ ์ถ๋ค๋ฉด ์ด๋ฅผ true๋ก ์ค์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ ธ๋์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ฐ๋ฆฌ๋ ์ด์ ๋ํด ์๊ฒ ๋ฉ๋๋ค.
๋ฐ์ดํฐ ์ค์ . ๋ฐ์ดํฐ๋ฅผ ์ค์ ํ๊ณ "-1"์ ์ค์ ํฉ๋๋ค. ์ฆ, ๋ฒ์ ์ ํ์ธํ์ง ์๊ณ ํญ์ ํ๋์ ๊ตฌ์ฑ์ด ์๋ค๊ณ ๊ฐ์ ํ๋ฏ๋ก ๋ง์ ๊ตฌ์ฑ์ ์ ์ฅํ ํ์๊ฐ ์์ต๋๋ค. ๋ง์ด ์ ์ฅํด์ผ ํ๋ค๋ฉด ๋ค๋ฅธ ๋ ๋ฒจ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ํ๋๋ง ์๋ค๊ณ ํ๋จํ์ฌ ์ต์ ๋ฒ์ ๋ง ์ ๋ฐ์ดํธํ๋ฏ๋ก ๋ฒ์ ์ ํ์ธํ์ง ์์ต๋๋ค. ์ด ์๊ฐ, ์ด์ ์ ๊ตฌ๋ ํ ๋ชจ๋ ํด๋ผ์ด์ธํธ๋ ์ด ๋ ธ๋์์ ๋ณ๊ฒฝ๋ ์ฌํญ์ด ์๋ค๋ ์๋ฆผ์ ๋ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ํ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์์ฒญํด์ผ ํฉ๋๋ค. ์๋ฆผ์ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ์์ ํ์ง ์๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์๋ฆผ๋ง ์์ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ ํ์๋ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์์ฒญํด์ผ ํฉ๋๋ค.
๊ธฐ๋ณธ ์์๋ฅผ ์ฌ์ฉํ๋ ๋ ๋ฒ์งธ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ทธ๋ฃน ๋ฉค๋ฒ์ญ. ์ฐ๋ฆฌ๋ ๋ถ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ง๊ณ ์๊ณ ๋ง์ ์์ปค๊ฐ ์์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ๋ชจ๋ ์ ์๋ฆฌ์ ์๋ค๋ ๊ฒ์ ์ดํดํ๊ณ ์ถ์ต๋๋ค. ๋ฐ๋ผ์ ๊ทธ๋ค์ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ด ์ผํ๊ณ ์์์ ๋ฑ๋กํด์ผ ํฉ๋๋ค. ๋ํ ์ฐ๋ฆฌ๋ ๋ง์คํฐ ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ๊ณณ์์ ํ์ฌ ๋ณด์ ํ๊ณ ์๋ ๋ชจ๋ ํ์ฑ ์์ ์์ ๋ํด ์์๋ณด๊ณ ์ถ์ต๋๋ค.
์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์์ ์ ๋ ธ๋๋ฅผ ์์ฑํ๊ณ create ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฑฐ๊ธฐ์ ํ์ ๋ ๋ฒจ์ ์ถ๊ฐํฉ๋๋ค. ์ฌ๋ผ์ด๋์ ์ค๋ฅ๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ ๋น์ ์ด ํ์ํฉ๋๋ค ์๋ฌ์ ์ผ์ด๋๋ ์ง์ ํ๋ฉด ๋ชจ๋ ์์ ์๊ฐ ํ๋์ฉ ์์ฑ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ ธ๋์ ํ์ ํญ๋ชฉ์ ๋ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์กด์ฌํ๋ ๋ชจ๋ ํ์ฑ ์์ ์๋ฅผ ์์ ํฉ๋๋ค.
์ด๊ฒ์ Java ์ฝ๋์์ ์ด๊ฒ์ด ์ด๋ป๊ฒ ์ํ๋ ์ ์๋์ง์ ๋ํ ๋์ฐํ ๊ตฌํ์ ๋๋ค. main ๋ฉ์๋๋ถํฐ ๋๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ ํด๋์ค์ ๋๋ค. ํด๋น ํด๋์ค์ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ธ์๋ก ์ฐ๊ฒฐํ๋ ํธ์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฆ, ์ด๋ฅผ ์ธ์๋ก ์ค์ ํฉ๋๋ค. ๋ ๋ฒ์งธ ์ธ์๋ ๊ทธ๋ฃน์ ์ด๋ฆ์ ๋๋ค.
์ฐ๊ฒฐ์ ์ด๋ป๊ฒ ๋๋์? ์ด๋ ์ฌ์ฉ๋๋ API์ ๊ฐ๋จํ ์์ ๋๋ค. ์ฌ๊ธฐ์์๋ ๋ชจ๋ ๊ฒ์ด ๋น๊ต์ ๊ฐ๋จํฉ๋๋ค. ํ์ค ํด๋์ค ZooKeeper๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ํธ์คํธ๋ฅผ ์ ๋ฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๊ฐ ์ด๊ณผ๋ฅผ 5์ด๋ก ์ค์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ connectSignal์ด๋ผ๋ ๋ฉค๋ฒ๊ฐ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ก ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๊ทธ๋ฃน์ ๋ง๋ญ๋๋ค. ๋ฌด์ธ๊ฐ๊ฐ ๊ธฐ๋ก๋ ์ ์์ง๋ง ์ฐ๋ฆฌ๋ ๊ฑฐ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ๋ ธ๋๋ ์๊ตฌ ์ ํ์ ๋๋ค. ๋ณธ์ง์ ์ผ๋ก ์ด๊ฒ์ ํญ์ ์กด์ฌํ๋ ์ผ๋ฐ์ ์ธ ์ผ๋ฐ ๋ ธ๋์ ๋๋ค. ์ธ์ ์ด ์์ฑ๋๋ ๊ณณ์ ๋๋ค. ์ด๋ ํด๋ผ์ด์ธํธ ์์ฒด์ ๊ตฌํ์ ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ธ์ ์ด ์ด์ ์์์ ๋ํ๋ด๋ ์ ๊ธฐ์ ์ธ ๋ฉ์์ง๋ฅผ ๋ณด๋ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธ์ ์ด ์ข ๋ฃ๋๋ฉด close๋ฅผ ํธ์ถํ๋ฉด ์ธ์ ์ด ์ข ๋ฃ๋ฉ๋๋ค. ์ด๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ZooKeeper๊ฐ ์ด๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์ธ์ ์ ์ค๋จํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ ๊ฒ์ ๋๋ค.
๋ฆฌ์์ค๋ฅผ ์ ๊ทธ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ์ฌ๊ธฐ์๋ ๋ชจ๋ ๊ฒ์ด ์กฐ๊ธ ๋ ๋ณต์กํฉ๋๋ค. ์์ปค ์ธํธ๊ฐ ์๊ณ ์ ๊ทธ๊ณ ์ถ์ ๋ฆฌ์์ค๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ์ํด lock1์ด๋ผ๋ ๋ณ๋์ ๋ ธ๋๋ฅผ ๋ง๋ญ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๋ง๋ค ์ ์์๋ค๋ฉด ์ฌ๊ธฐ์ ์๋ฌผ์ ๊ฐ ์๋ ๊ฒ์ ๋๋ค. ์์ฑํ ์ ์๋ ๊ฒฝ์ฐ ์์ ์๋ ์ฌ๊ธฐ์์ getData๋ฅผ ๊ฐ์ ธ์ค๋ ค๊ณ ์๋ํ๋ฉฐ ๋ ธ๋๊ฐ ์ด๋ฏธ ์์ฑ๋์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ๊ฐ์์๋ฅผ ๋ฐฐ์นํ๊ณ ์ด ๋ ธ๋์ ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ ์๊ฐ ์ด๋ฅผ ์๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ฌํํ ์๊ฐ์ ๊ฐ๋๋ก ๋ ธ๋ ฅํ ์ ์์ต๋๋ค. ์ด ๋ ธ๋๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ด ์ ๊ธ์ ๊ฐ์ ธ๊ฐ ๋ค์ ๋ ์ด์ ์ ๊ธ์ด ํ์ํ์ง ์์ผ๋ฉด ๋ ธ๋๊ฐ ์ธ์ ๋ด์๋ง ์กด์ฌํ๋ฏ๋ก ์ด๋ฅผ ํฌ๊ธฐํฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ๋ผ์ง ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ธ์ ์ ํ๋ ์์ํฌ ๋ด์์ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ๊ฐ ์ด ๋ ธ๋์ ๋ํ ์ ๊ธ์ ์ํํ ์ ์์ต๋๋ค. ๋๋ ์คํ๋ ค ๊ทธ๋ ๋ฌด์ธ๊ฐ ๋ณ๊ฒฝ๋์๋ค๋ ์๋ฆผ์ ๋ฐ๊ณ ์๊ฐ ๋ด์ ์ ๊ธ์ ์๋ํ ์ ์์ต๋๋ค.
์ฃผ์ ๋ฆฌ๋๋ฅผ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ ๋ค๋ฅธ ์์ ๋๋ค. ์ด๋ ์กฐ๊ธ ๋ ๋ณต์กํ์ง๋ง ์๋์ ์ผ๋ก ๊ฐ๋จํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋ ๊ฑธ๊น์? ๋ชจ๋ ์์ ์๋ฅผ ์ง๊ณํ๋ ๊ธฐ๋ณธ ๋ ธ๋๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฆฌ๋์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ป์ผ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ด ์์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ํ๋๋ฉด, ์ฆ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ฉด ์์ ์๊ฐ ์ด ๋ฆฌ๋๋ฅผ ๋ฐ๋ฅด๊ธฐ ์์ํฉ๋๋ค. ๊ทธ๋ ์ด๋ฏธ ์ง๋์๊ฐ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฆฌ๋๊ฐ ์ด๋ค ์ด์ ๋ก ์ฌ๋งํ ๊ฒฝ์ฐ ์๋ก์ด ๋ฆฌ๋๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์ฑ๊ณตํ๋ฉด ์ฐ๋ฆฌ ์ง์์ด ๋ฆฌ๋๊ฐ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๊ธ ๋๊ตฐ๊ฐ๊ฐ ์๋ก์ด ๋ฆฌ๋๋ฅผ ๋ง๋ค์๋ค๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ๋๊ตฌ์ธ์ง ์ดํดํ๊ณ ๊ทธ๋ฅผ ๋ฐ๋ฅด๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค.
์ฌ๊ธฐ์ ์์ ๋ฌด๋ฆฌ ํจ๊ณผ, ์ฆ ๋ฌด๋ฆฌ ํจ๊ณผ๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ํ๋ฉด ๋ฆฌ๋๊ฐ ์ฃฝ์ผ๋ฉด ์๊ฐ์ ์ฒซ ๋ฒ์งธ ์ฌ๋์ด ๋ฆฌ๋๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฆฌ์์ค๋ฅผ ์บก์ฒํ ๋ ๋ค์๊ณผ ๊ฐ์ด ์ฝ๊ฐ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํด ๋ณผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฐ๋ฆฌ๋ ์๋ฌผ์ ๋ฅผ ์ป๊ณ ์ถ์ง๋ง Hert ํจ๊ณผ๋ ์์ต๋๋ค. ์ด๋ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๊ธ์ด ์๋ ๊ธฐ์กด ๋ ธ๋์ ๋ํ ๋ชจ๋ ๋ ธ๋ ID ๋ชฉ๋ก์ ์์ฒญํ๋ค๋ ์ฌ์ค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ ์ ์ฐ๋ฆฌ๊ฐ ์ ๊ธ์ ์์ฑํ ๋ ธ๋๊ฐ ์ฐ๋ฆฌ๊ฐ ๋ฐ์ ์ธํธ ์ค ๊ฐ์ฅ ์๋ค๋ฉด ์ด๋ ์ฐ๋ฆฌ๊ฐ ์ ๊ธ์ ์บก์ฒํ์์ ์๋ฏธํฉ๋๋ค. ์ ๊ธ์ ๋ฐ์๋์ง ํ์ธํฉ๋๋ค. ํ์ธ ์ฌํญ์ผ๋ก ์ ์ ๊ธ์ ์์ฑํ ๋ ๋ฐ์ ID๊ฐ ์ต์๋ผ๋ ์กฐ๊ฑด์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋ฐ์ผ๋ฉด ์ฐ๋ฆฌ๋ ๋ ๋ง์ ์ผ์ ํฉ๋๋ค.
์ ๊ธ๋ณด๋ค ์์ ํน์ ID๊ฐ ์์ผ๋ฉด ์ด ์ด๋ฒคํธ์ ๊ฐ์์๋ฅผ ๋ฐฐ์นํ๊ณ ๋ฌด์ธ๊ฐ ๋ณ๊ฒฝ๋ ๋๊น์ง ์๋ฆผ์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์ฆ, ์ฐ๋ฆฌ๋ ์ด ์ ๊ธ์ ๋ฐ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ด์ง๊ธฐ ์ ๊น์ง๋ ์ต์ ์์ด๋๊ฐ ๋์ง ์๊ณ , ์ต์ ์ ๊ธ๋ ๋ฐ์ง ๋ชปํ๋ฏ๋ก ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํด์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์ง ์์ผ๋ฉด ์ฆ์ ์ฌ๊ธฐ๋ก ๊ฐ์ ์ด ์ ๊ธ์ ๋ค์ ์ป์ผ๋ ค๊ณ ์๋ํฉ๋๋ค. ์๋ํ๋ฉด ์ด ์๊ฐ ๋์ ๋ญ๊ฐ ๋ณ๊ฒฝ๋์์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
ZooKeeper๋ ๋ฌด์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋์? ํฌ๊ฒ 4๊ฐ์ง๊ฐ ์์ต๋๋ค. ์ฒ๋ฆฌ๊ณผ์ - ์์ฒญ์ ๋๋ค. ๋ํ ZooKeeper Atomic Broadcast๋ ์์ต๋๋ค. ๋ชจ๋ ์์ ์ด ๊ธฐ๋ก๋๋ ์ปค๋ฐ ๋ก๊ทธ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ In-memory Replicated DB ์์ฒด, ์ฆ ์ด ์ ์ฒด ํธ๋ฆฌ๊ฐ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด์ ๋๋ค.
๋ชจ๋ ์ฐ๊ธฐ ์์ ์ด ์์ฒญ ํ๋ก์ธ์๋ฅผ ํต๊ณผํ๋ค๋ ์ ์ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๊ธฐ ์์ ์ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ง์ ์ด๋๋ฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๊ฐ ์์ ํ ๋ณต์ ๋ฉ๋๋ค. ZooKeeper์ ๋ชจ๋ ์ธ์คํด์ค๋ ๋ฐ์ดํฐ์ ์ ์ฒด ๋ณต์ฌ๋ณธ์ ์ ์ฅํฉ๋๋ค.
์ถฉ๋ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต์ํ๊ธฐ ์ํด ์ปค๋ฐ ๋ก๊ทธ๊ฐ ์์ต๋๋ค. ํ์ค ๊ดํ์ ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๊ธฐ ์ ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ธฐ๋ก๋์ด ์ถฉ๋์ด ๋ฐ์ํ ๊ฒฝ์ฐ ์ด ๋ก๊ทธ๋ฅผ ์ฌ์ํ๊ณ ์์คํ ์ํ๋ฅผ ๋ณต์ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฃผ๊ธฐ์ ์ธ ์ค๋ ์ท๋ ์ฌ์ฉ๋ฉ๋๋ค.
ZooKeeper Atomic Broadcast๋ ๋ณต์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฒ์ ๋๋ค.
ZAB๋ ZooKeeper ๋ ธ๋์ ๊ด์ ์์ ๋ด๋ถ์ ์ผ๋ก ๋ฆฌ๋๋ฅผ ์ ํํฉ๋๋ค. ๋ค๋ฅธ ๋ ธ๋๋ ๊ทธ๋ ์ ์ถ์ข ์๊ฐ ๋์ด ๊ทธ๋ ๋ก๋ถํฐ ์ด๋ค ํ๋์ ๊ธฐ๋ํฉ๋๋ค. ํญ๋ชฉ์ ๋ฐ์ผ๋ฉด ๋ชจ๋ ๋ฆฌ๋์๊ฒ ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ ๋จผ์ ์ฐ๊ธฐ ์์ ์ ์ํํ ๋ค์ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ํ ๋ฉ์์ง๋ฅผ ์ถ์ข ์์๊ฒ ๋ณด๋ ๋๋ค. ์ด๋ ์ค์ ๋ก ์์์ ์ผ๋ก ์ํ๋์ด์ผ ํฉ๋๋ค. ์ฆ, ์ ์ฒด์ ๋ น์ ๋ฐ ๋ฐฉ์ก ์์ ์ด ์์์ ์ผ๋ก ์ํ๋์ด์ผ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค.
์ฐ๊ธฐ ์์ฒญ๋ง ์ฒ๋ฆฌํฉ๋๋ค. ์ฃผ์ ์๋ฌด๋ ์์ ์ ํธ๋์ญ์ ์ ๋ฐ์ดํธ๋ก ๋ณํํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ํน๋ณํ ์์ฑ๋ ์์ฒญ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ ๋์ผํ ์์ ์ ๋ํ ์ ๋ฐ์ดํธ์ ๋ฉฑ๋ฑ์ฑ์ด ๋ณด์ฅ๋๋ค๋ ์ ์ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ฌด์์ ๋๊น? ์ด ์์ ์ด ๋ ๋ฒ ์คํ๋๋ฉด ๋์ผํ ์ํ๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ์ฆ, ์์ฒญ ์์ฒด๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ถฉ๋์ด ๋ฐ์ํ ๊ฒฝ์ฐ ์์ ์ ๋ค์ ์์ํ์ฌ ํ์ฌ ๋จ์ด์ง ๋ณ๊ฒฝ ์ฌํญ์ ๋กค๋ฐฑํ ์ ์๋๋ก ์ด ์์ ์ ์ํํด์ผ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์์คํ ์ํ๋ ๋์ผํด์ง๋๋ค. ์ฆ, ์ผ๋ จ์ ๋์ผํ ์์ (์: ์ ๋ฐ์ดํธ ํ๋ก์ธ์ค)์ผ๋ก ์ธํด ์์คํ ์ ์ต์ข ์ํ๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ๊ฐ ์์ด์๋ ์ ๋ฉ๋๋ค.
์ถ์ฒ : habr.com