Skip to content

Latest commit

ย 

History

History
82 lines (56 loc) ยท 3.25 KB

File metadata and controls

82 lines (56 loc) ยท 3.25 KB

์˜จ์„ธ์ฃผ: ์˜จ ์„ธ์ƒ์ด ๋‹ค ์ฃผ์‹์ด์•ผ!

๐Ÿ“„ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  • ์ฃผ์ œ: ๊ตญ๋‚ด ์ฃผ์‹ ๊ธฐ๋ฐ˜ ๋ชจ์˜ ํˆฌ์ž ์„œ๋น„์Šค
  • ๋Œ€์ƒ: ์ฃผ์‹์„ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” ์˜ˆ๋น„ ํˆฌ์ž์ž

๐Ÿ“ฝ๏ธ ์‹œ์—ฐ ์˜์ƒ

์‹œ์—ฐ ์˜์ƒ ๋ณด๋Ÿฌ ๊ฐ€๊ธฐ

๐ŸŽฏ ๋ชฉํ‘œ

  • ๋งž์ถค ์ฃผ์‹ ์ถ”์ฒœ: ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ฃผ์‹ ์ถ”์ฒœ
  • ๋ชจ์˜ ํˆฌ์ž ์„œ๋น„์Šค ์ œ๊ณต: ๊ด€์‹ฌ์žˆ๋Š” ์ฃผ์‹์— ๋Œ€ํ•œ ๋ชจ์˜ ํˆฌ์ž๊ธฐ๋Šฅ ์ œ๊ณต

๐Ÿ“š ๊ธฐ์ˆ  ์Šคํƒ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2025-05-08 แ„‹แ…ฉแ„’แ…ฎ 5 01 11

โœ๏ธ ์•„ํ‚คํ…์ณ

แ„Œแ…ฆแ„†แ…ฉแ†จ แ„‹แ…ฅแ†นแ„‚แ…ณแ†ซ แ„ƒแ…กแ„‹แ…ตแ„‹แ…ฅแ„€แ…ณแ„…แ…ขแ†ท drawio

์œ„ ๊ทธ๋ฆผ์€ ์˜จ์„ธ์ฃผ์˜ ์ „์ฒด ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

  • User Service: ์ธ์ฆ, ์ž”์•ก ๋ฐ ๋ณด์œ  ์ฃผ์‹ ๊ด€๋ฆฌ
  • Order Service: ์ฃผ๋ฌธ ์ƒ์„ฑ ๋ฐ ์ €์žฅ
  • Matching Service: ์ฃผ๋ฌธ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์ฒด๊ฒฐ ์ง„ํ–‰

๐Ÿ’ฌ ์ฃผ์š” ์—ญํ• 

  • ์ฃผ๋ฌธ ๋ฐ ์ฒด๊ฒฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„
  • ์ฒด๊ฒฐ ๋ฐ ์ฃผ๋ฌธ ์‹œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

๐Ÿ”— ์ฃผ์š” ๊ธฐ๋Šฅ

  1. ํšŒ์›๊ฐ€์ž… ๋ฐ ์ธ์ฆ ์‹œ์Šคํ…œ

    • Google ์†Œ์…œ ๋กœ๊ทธ์ธ ์ง€์›
    • ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ์ž ์ •๋ณด ๋ฐ ๊ด€์‹ฌ ์ฃผ์‹ ๊ด€๋ฆฌ
  2. ํฌ๋กฌ ์ต์Šคํ…์…˜ ๊ธฐ๋ฐ˜ ์ฃผ์‹ ์ถ”์ฒœ

    • ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๊ณ  ์žˆ๋Š” ์›น ํŽ˜์ด์ง€ ๊ธฐ๋ฐ˜ ๊ด€๋ จ ์ฃผ์‹ ์ž๋™ ์ถ”์ฒœ
    • ๊ด€์‹ฌ ์ฃผ์‹ ์ €์žฅ ๊ธฐ๋Šฅ ์ œ๊ณต
  3. ์ฃผ์‹ ์ฃผ๋ฌธ ๋ฐ ์ฒด๊ฒฐ ์‹œ์Šคํ…œ

    • ์‚ฌ์šฉ์ž๊ฐ€ ์ฃผ๋ฌธํ•œ ์ฃผ์‹์„ ์‹œ์žฅ ๊ทœ์น™์— ๋”ฐ๋ผ ์ฒด๊ฒฐ
    • ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ๋กœ ๊ตฌํ˜„

๐ŸŒ ์ฃผ์š” ๋กœ์ง ํ”Œ๋กœ์šฐ ์ฐจํŠธ

์ฃผ๋ฌธ ์ฒ˜๋ฆฌ ํ๋ฆ„๋„

๐Ÿ’ช ์„ฑ๋Šฅ ๊ฐœ์„ 

1๏ธโƒฃ ์ฒด๊ฒฐ ์†๋„ ํ–ฅ์ƒ - TPS ์•ฝ 625% ํ–ฅ์ƒ

๋ฌธ์ œ ์ƒํ™ฉ

  • DB๋ฅผ ์กฐํšŒํ•˜๋ฉฐ ์ฒด๊ฒฐ์„ ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ Connection Pool ๋ถ€์กฑ๊ณผ ์†๋„ ์ €ํ•˜ ๋ฌธ์ œ ๋ฐœ๊ฒฌ

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  1. ์ธ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์ฒด๊ฒฐ ์ง„ํ–‰
    • ๊ธฐ์กด DB์—์„œ ์กฐํšŒ -> ๋‚จ์€ ์ˆ˜๋Ÿ‰ ์—…๋ฐ์ดํŠธ -> ์ €์žฅ ๋กœ์ง์„ ์ธ๋ฉ”๋ชจ๋ฆฌ ์ƒ TreeMap์—์„œ ์ง„ํ–‰
    • ๋ฐ์ดํ„ฐ ์œ ์‹ค ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ์ฒด๊ฒฐ ์™„๋ฃŒ ํ›„ DB์— ๋ฐ์ดํ„ฐ ์ €์žฅ
  2. ๋™์‹œ์„ฑ ๋ฌธ์ œ ๋Œ€์‘
    • ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ConcurrentSkipMap์œผ๋กœ ๋ณ€๊ฒฝ ๋ฐ ReentrantLock ์ ์šฉ
    • DB ์ €์žฅ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋™์‹œ์„ฑ ๋ฌธ์ œ๋Š” ๋‚™๊ด€์  ๋ฝ + ์ง€์ˆ˜ ๋ฐฑ์˜คํ”„ ๋ฐฉ์‹ ์ ์šฉ

๊ฒฐ๊ณผ

  1. DB ๊ธฐ๋ฐ˜ ์ฒด๊ฒฐ ์ฒ˜๋ฆฌ(์•ฝ 19TPS)
image (3)
  1. ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ์ฒด๊ฒฐ(์•ฝ 160TPS)
image (4)

2๏ธโƒฃ ์ฒด๊ฒฐ ์—”์ง„ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ๋ฌธ์ œ ํ•ด๊ฒฐ

๋ฌธ์ œ ์ƒํ™ฉ

  • 20๊ฐœ ํšŒ์‚ฌ ๋Œ€์ƒ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ์•ฝ 450MB ํž™ ์‚ฌ์šฉ ํ™•์ธ
  • 900๊ฐœ ํšŒ์‚ฌ๋กœ ํ™•์žฅํ•  ๊ฒฝ์šฐ 20GB ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ

ํ•ด๊ฒฐ

  • ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉ์ž/์ฃผ๋ฌธ/์ฒด๊ฒฐ ๊ธฐ๋Šฅ์œผ๋กœ ๋ถ„๋ฆฌ
  • ๊ฐ ์„œ๋น„์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ RabbitMQ ๊ธฐ๋ฐ˜์˜ ์ด๋ฒคํŠธ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ