๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ”ฌapplication/- distributed system11

[distributed system] CAP ์ด๋ก ๊ณผ PACELC ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ ๋ชฉ์ฐจ TL;DR ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ 3 ๊ฐ€์ง€ Gaurantee CAP ์ด๋ก  CP ์‹œ์Šคํ…œ AP ์‹œ์Šคํ…œ CAP ์‹œ์Šคํ…œ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ด์œ  CAP ์ด๋ก ์˜ ํ•œ๊ณ„ PACELC ์ด๋ก  TL;DR ์ด๋ฒˆ ๊ธ€์˜ ํ•ต์‹ฌ์„ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. CAP ์ด๋ก  ํŒŒํ‹ฐ์…˜์ด ํ•ญ์ƒ ๋ฐœ์ƒํ•  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ C, A ์ค‘ ํ•˜๋‚˜๋งŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•˜๋Š” ์ด๋ก  Consistency Availability Partition Tolerance CAP ์ด๋ก ์˜ ํ•œ๊ณ„ ์™„๋ฒฝํ•œ CP, AP ์‹œ์Šคํ…œ์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค ๋Œ€๋ถ€๋ถ„์˜ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์€ CP ์™€ AP ์‚ฌ์ด ์–ด๋””์ฏค์ด๋‹ค PACELC ์ด๋ก  partition ์ƒํ™ฉ๊ณผ ์•„๋‹Œ(else) ์ƒํ™ฉ์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๊ฐ๊ฐ trade off ์˜ ์•ž ๊ธ€์ž๋ฅผ ๋”ด ์ด๋ก  ํŒŒํ‹ฐ์…˜ partition ์ƒํ™ฉ์ผ ๊ฒฝ์šฐ Avaliabilt.. 2023. 11. 12.
[Distributed Tracing] Zipkin ๊ณผ Spring Cloud Sleuth ์— ๋Œ€ํ•ด์„œ ๋ณธ ๊ธ€์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋ถ„์‚ฐ ์ถ”์  ์‹œ๋ฆฌ์ฆˆ๋กœ ์ด๋ก ๊ณผ ์‹ค์Šต์ด ํ•จ๊ป˜ ํฌํ•จ๋œ ์‹œ๋ฆฌ์ฆˆ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ชฉ์ฐจ์— ํ‘œ์‹œ๋œ ๊ธ€์„ ๋ชจ๋‘ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ชฉ์ฐจ Distributed Tracing, ๋ถ„์‚ฐ ์ถ”์ ์ด๋ž€? Spring Cloud Sleuth ์™€ Zipkin Sleuth ๋กœ Http ํ™˜๊ฒฝ์˜ ๋ถ„์‚ฐ ์ถ”์  ์‹ค์Šต Sleuth ๋กœ Messaging ํ™˜๊ฒฝ์˜ ๋ถ„์‚ฐ ์ถ”์  ์‹ค์Šต ์‹ค์Šต์— ๋Œ€ํ•œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๊ณ  ์‹ถ๋‹ค๋ฉด ์‹ค์Šต github์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Zipkin ์— ๋Œ€ํ•ด์„œ Zipkin ์€ ํŠธ์œ„ํ„ฐ์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ์‚ฌ์šฉํ•œ Distributed Tracing Tool ์ด๋‹ค Zipkin ์—์„œ๋Š” ์ง€๋‚œ ์‹œ๊ฐ„ ์—์„œ๋„ ์ด์•ผ๊ธฐํ•˜์˜€๋˜ Dapper ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ถ”์ ํ•œ๋‹ค. Zipkin ์—์„œ๋Š” Tracer ์™€ ํ•จ๊ป˜ํ•ด์•ผ ํ•œ๋‹ค.. 2022. 5. 1.
[Distributed Tracing] ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋ถ„์‚ฐ ์ถ”์ ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€ [Distributed Tracing] ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋ถ„์‚ฐ ์ถ”์ ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€ ๋ณธ ๊ธ€์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋ถ„์‚ฐ ์ถ”์  ์‹œ๋ฆฌ์ฆˆ๋กœ ์ด๋ก ๊ณผ ์‹ค์Šต์ด ํ•จ๊ป˜ ํฌํ•จ๋œ ์‹œ๋ฆฌ์ฆˆ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ชฉ์ฐจ์— ํ‘œ์‹œ๋œ ๊ธ€์„ ๋ชจ๋‘ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ชฉ์ฐจ Distributed Tracing, ๋ถ„์‚ฐ ์ถ”์ ์ด๋ž€? Spring Cloud Sleuth ์™€ Zipkin Sleuth ๋กœ Http ํ™˜๊ฒฝ์˜ ๋ถ„์‚ฐ ์ถ”์  ์‹ค์Šต Sleuth ๋กœ Messaging ํ™˜๊ฒฝ์˜ ๋ถ„์‚ฐ ์ถ”์  ์‹ค์Šต ์‹ค์Šต์— ๋Œ€ํ•œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜์‹œ๊ณ  ์‹ถ๋‹ค๋ฉด ์‹ค์Šต github์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ์ถ”์ ์ด ์™œ ํ•„์š”ํ•œ๊ฐ€? ์ด์ „์˜ ์›น ์„œ๋น„์Šค๋Š” 3-tier ์•„ํ‚คํ…์ฒ˜์™€ 2-tier ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ฃผ๋ฅผ ์ด๋ฃจ์—ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์„ธ์ƒ์— ๋‚˜์˜ค๊ณ  ์ด๋ฅผ ์‹œ๋„ํ•˜๊ณ  ์„ฑ๊ณตํ•˜๋Š” ๊ธฐ์—…์˜ ์‚ฌ๋ก€๊ฐ€ .. 2022. 5. 1.
๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ ์„œ๋น„์Šค๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋น„๊ต (2) [OpenFeign vs Rest Template] - ๊ฐ๊ฐ์˜ ๋น„๊ต ์ด ๊ธ€์€ 2๊ฐœ์˜ ๊ธ€๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ ์„œ๋น„์Šค๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋น„๊ต [OpenFeign vs Rest Template] - ์„œ๋น„์Šค ๊ตฌํ˜„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ ์„œ๋น„์Šค๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋น„๊ต [OpenFeign vs Rest Template] - ๊ฐ๊ฐ์˜ ๋น„๊ต ํ•ด๋‹น ๊ธ€์—์„œ ๋‚˜์˜ค๋Š” ์‹ค์Šต ๋‚ด์šฉ์€ Spring Cloud๋ฅผ ์ด์šฉํ•œ MSA ๊ตฌ์„ฑ์˜ ์ „๋ฐ˜์ ์ธ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์‹ค์Šต์€ Eureka + Gateway + Microservices (2)๋ฅผ ์ด์šฉํ•œ ํ™˜๊ฒฝ์œผ๋กœ ํ•ด๋‹น ๊ธ€์—์„œ๋Š” Eureka์™€ Gateway ์„ค์ •์— ๋Œ€ํ•ด์„œ๋Š” ์–ธ๊ธ‰ํ•˜์ง€ ์ง€๋งŒ ๋งŒ์•ฝ Eureka๋‚˜ Gateway์˜ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•˜์‹  ๋ถ„๋“ค์ด๋‚˜ ๋” ์•Œ์•„๋ณด๊ณ  ์‹ค์Šต ํ™˜๊ฒฝ์„ ๋”ฐ๋ผ ํ•ด๋ณด๊ณ ์‹ถ์€ ์‚ฌ๋žŒ์€ ์•„๋ž˜์˜ ์‹ค์Šต ๊ณผ์ •์— ์กด์žฌํ•˜๋Š” UR.. 2021. 4. 29.
๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ ์„œ๋น„์Šค๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋น„๊ต (1) [OpenFeign vs Rest Template] - ์„œ๋น„์Šค ๊ตฌํ˜„ ์ด ๊ธ€์€ 2๊ฐœ์˜ ๊ธ€๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ ์„œ๋น„์Šค๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋น„๊ต [OpenFeign vs Rest Template] - ์„œ๋น„์Šค ๊ตฌํ˜„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์—์„œ ์„œ๋น„์Šค๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋น„๊ต [OpenFeign vs Rest Template] - ๊ฐ๊ฐ์˜ ๋น„๊ต ํ•ด๋‹น ๊ธ€์—์„œ ๋‚˜์˜ค๋Š” ์‹ค์Šต ๋‚ด์šฉ์€ Spring Cloud๋ฅผ ์ด์šฉํ•œ MSA ๊ตฌ์„ฑ์˜ ์ „๋ฐ˜์ ์ธ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์‹ค์Šต์€ Eureka + Gateway + Microservices (2)๋ฅผ ์ด์šฉํ•œ ํ™˜๊ฒฝ์œผ๋กœ ํ•ด๋‹น ๊ธ€์—์„œ๋Š” Eureka์™€ Gateway ์„ค์ •์— ๋Œ€ํ•ด์„œ๋Š” ์–ธ๊ธ‰ํ•˜์ง€ ์ง€๋งŒ ๋งŒ์•ฝ Eureka๋‚˜ Gateway์˜ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•˜์‹  ๋ถ„๋“ค์ด๋‚˜ ๋” ์•Œ์•„๋ณด๊ณ  ์‹ค์Šต ํ™˜๊ฒฝ์„ ๋”ฐ๋ผ ํ•ด๋ณด๊ณ ์‹ถ์€ ์‚ฌ๋žŒ์€ ์•„๋ž˜์˜ ์‹ค์Šต ๊ณผ์ •์— ์กด์žฌํ•˜๋Š” UR.. 2021. 4. 29.
[๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค] MSA์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ - Message Queueing ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ์ˆ ์ ์œผ๋กœ ๋งŽ์€ ์–ด๋ ค์›€์ด ์ˆ˜๋ฐ˜๋œ๋‹ค. ์•„๋ž˜์˜ ์‚ฌ์ง„๋งŒ ๋ณด๋”๋ผ๋„ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•Œ์•ผ์•„ ํ•  ๊ธฐ์ˆ ๋“ค์ด ๊ต‰์žฅํžˆ ๋งŽ๋‹ค. ์˜ค๋Š˜์€ ์—ฌ๊ธฐ์— ๋‚˜์˜จ ๊ธฐ์ˆ ๋“ค์˜ ํŠน์ง•๊ณผ ์–ด๋–ค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค. CNCF๊ฐ€ ์ œ์‹œํ•œ ํ‘œ์ค€ MSA ๊ตฌ์„ฑ ์š”์†Œ CNCF๋Š” ์ง€๋‚œ Cloud Native Architecture ์—์„œ๋„ ์ž ๊น ์–ธ๊ธ‰ํ•œ Cloud Native Computing Foundation ๋‹จ์ฒด์ด๋‹ค. CNCF ์—์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋ˆˆ๋‹ค. API Gateway ํŒจํ„ด ๋ธ”๋กœ๊ทธ ์„ค๋ช… ๋ฐ”๋กœ๊ฐ€๊ธฐ Service Mesh ๋ธ”๋กœ๊ทธ ์„ค๋ช… ๋ฐ”๋กœ๊ฐ€๊ธฐ Container Runtime ๋ธ”๋กœ๊ทธ ์„ค๋ช… ๋ฐ”๋กœ๊ฐ€๊ธฐ CI / CD ๋ธ”๋กœ๊ทธ ์„ค๋ช… ๋ฐ”๋กœ๊ฐ€๊ธฐ M.. 2021. 4. 14.