- ์ฃผ์ : ๊ตญ๋ด ์ฃผ์ ๊ธฐ๋ฐ ๋ชจ์ ํฌ์ ์๋น์ค
- ๋์: ์ฃผ์์ ์ฒ์ ์์ํ๋ ์๋น ํฌ์์
- ๋ง์ถค ์ฃผ์ ์ถ์ฒ: ์ฌ์ฉ์๊ฐ ๋ณด๊ณ ์๋ ๋ด์ฉ์ ๋ํ ์ฃผ์ ์ถ์ฒ
- ๋ชจ์ ํฌ์ ์๋น์ค ์ ๊ณต: ๊ด์ฌ์๋ ์ฃผ์์ ๋ํ ๋ชจ์ ํฌ์๊ธฐ๋ฅ ์ ๊ณต
์ ๊ทธ๋ฆผ์ ์จ์ธ์ฃผ์ ์ ์ฒด ์๋น์ค ์ํคํ ์ฒ๋ฅผ ๋ํ๋ ๋๋ค.
- User Service: ์ธ์ฆ, ์์ก ๋ฐ ๋ณด์ ์ฃผ์ ๊ด๋ฆฌ
- Order Service: ์ฃผ๋ฌธ ์์ฑ ๋ฐ ์ ์ฅ
- Matching Service: ์ฃผ๋ฌธ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ฒด๊ฒฐ ์งํ
- ์ฃผ๋ฌธ ๋ฐ ์ฒด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
- ์ฒด๊ฒฐ ๋ฐ ์ฃผ๋ฌธ ์ ์ด๋ฒคํธ ์ฒ๋ฆฌ
-
ํ์๊ฐ์ ๋ฐ ์ธ์ฆ ์์คํ
- Google ์์ ๋ก๊ทธ์ธ ์ง์
- ๋ง์ดํ์ด์ง์์ ์ฌ์ฉ์ ์ ๋ณด ๋ฐ ๊ด์ฌ ์ฃผ์ ๊ด๋ฆฌ
-
ํฌ๋กฌ ์ต์คํ ์ ๊ธฐ๋ฐ ์ฃผ์ ์ถ์ฒ
- ์ฌ์ฉ์๊ฐ ๋ณด๊ณ ์๋ ์น ํ์ด์ง ๊ธฐ๋ฐ ๊ด๋ จ ์ฃผ์ ์๋ ์ถ์ฒ
- ๊ด์ฌ ์ฃผ์ ์ ์ฅ ๊ธฐ๋ฅ ์ ๊ณต
-
์ฃผ์ ์ฃผ๋ฌธ ๋ฐ ์ฒด๊ฒฐ ์์คํ
- ์ฌ์ฉ์๊ฐ ์ฃผ๋ฌธํ ์ฃผ์์ ์์ฅ ๊ท์น์ ๋ฐ๋ผ ์ฒด๊ฒฐ
- ๋น๋๊ธฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ฒ๋ฆฌ ๊ตฌ์กฐ๋ก ๊ตฌํ
1๏ธโฃ ์ฒด๊ฒฐ ์๋ ํฅ์ - TPS ์ฝ 625% ํฅ์
๋ฌธ์ ์ํฉ
- DB๋ฅผ ์กฐํํ๋ฉฐ ์ฒด๊ฒฐ์ ์งํํ ๊ฒฝ์ฐ Connection Pool ๋ถ์กฑ๊ณผ ์๋ ์ ํ ๋ฌธ์ ๋ฐ๊ฒฌ
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ์ธ๋ฉ๋ชจ๋ฆฌ ์์์ ์ฒด๊ฒฐ ์งํ
- ๊ธฐ์กด DB์์ ์กฐํ -> ๋จ์ ์๋ ์ ๋ฐ์ดํธ -> ์ ์ฅ ๋ก์ง์ ์ธ๋ฉ๋ชจ๋ฆฌ ์ TreeMap์์ ์งํ
- ๋ฐ์ดํฐ ์ ์ค ๋ฐฉ์ง๋ฅผ ์ํด ์ฒด๊ฒฐ ์๋ฃ ํ DB์ ๋ฐ์ดํฐ ์ ์ฅ
- ๋์์ฑ ๋ฌธ์ ๋์
- ์๋ฃ๊ตฌ์กฐ๋ฅผ ConcurrentSkipMap์ผ๋ก ๋ณ๊ฒฝ ๋ฐ ReentrantLock ์ ์ฉ
- DB ์ ์ฅ ์ ๋ฐ์ํ๋ ๋์์ฑ ๋ฌธ์ ๋ ๋๊ด์ ๋ฝ + ์ง์ ๋ฐฑ์คํ ๋ฐฉ์ ์ ์ฉ
๊ฒฐ๊ณผ
- DB ๊ธฐ๋ฐ ์ฒด๊ฒฐ ์ฒ๋ฆฌ(์ฝ 19TPS)
- ์ธ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ ์ฒด๊ฒฐ(์ฝ 160TPS)
2๏ธโฃ ์ฒด๊ฒฐ ์์ง ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ๋ฌธ์ ํด๊ฒฐ
๋ฌธ์ ์ํฉ
- 20๊ฐ ํ์ฌ ๋์ ๋ถํํ ์คํธ ๊ฒฐ๊ณผ ์ฝ 450MB ํ ์ฌ์ฉ ํ์ธ
- 900๊ฐ ํ์ฌ๋ก ํ์ฅํ ๊ฒฝ์ฐ 20GB ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ ๊ฒ์ผ๋ก ์์
ํด๊ฒฐ
- ์๋ฒ๋ฅผ ์ฌ์ฉ์/์ฃผ๋ฌธ/์ฒด๊ฒฐ ๊ธฐ๋ฅ์ผ๋ก ๋ถ๋ฆฌ
- ๊ฐ ์๋น์ค ๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ RabbitMQ ๊ธฐ๋ฐ์ ์ด๋ฒคํธ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ

