Spring Framework/โ˜๏ธ Spring Cloud

Spring Framework/โ˜๏ธ Spring Cloud

[Spring Cloud] ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•œ Apache Kafka ํ™œ์šฉ

Apache Kafka ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” Orders โž” Catalogs Order Service์— ์š”์ฒญ๋œ ์ฃผ๋ฌธ ์ˆ˜๋Ÿ‰ ์ •๋ณด๋ฅผ Catalog Service์— ๋ฐ˜์˜ Order Service์—์„œ Kafka Topic์œผ๋กœ ๋ฉ”์‹œ์ง€ ์ „์†ก โž” Producer Catalog Service์—์„œ Kafka Topic์— ์ „์†ก๋œ ๋ฉ”์‹œ์ง€ ์ทจ๋“ โž” Consumer Order-Service์™€ Catalog-Service์— Kafka ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์ถ”๊ฐ€ ZooKeeperServer์™€ KafkaServer ๊ธฐ๋™ + Eureka Server (discovery-service) ์‹คํ–‰ config-service, apigateway-service, order-service, catalog-service ์‹คํ–‰ ์ˆ˜๋Ÿ‰ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ์™„๋ฃŒ Multip..

Spring Framework/โ˜๏ธ Spring Cloud

[Spring Cloud] Microservices๊ฐ„์˜ ํ†ต์‹  - RestTemplate & FeignClient

Microservices๊ฐ„์˜ ํ†ต์‹ ํ•˜๊ธฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ user-service์—์„œ userId๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์š”์ฒญํ–ˆ์„ ์‹œ ์‚ฌ์šฉ์ž์˜ ์ฃผ๋ฌธ์ด๋ ฅ๊นŒ์ง€ ๊ฐ€์ ธ์™€์•ผํ•˜๋Š” ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•ด๋ณด๋ฉด, ์š”์ฒญํ–ˆ๋˜ userId ๊ฐ’์„ order-service์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•ด์„œ ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ์ฃผ๋ฌธ์ด๋ ฅ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. RestTemplate๊ณผ FeignClient๋ฅผ ์ด์šฉํ•ด ํ•ด๋‹นํ•˜๋Š” ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€๋ณด์ž. RestTemplate RestTemplate์€ http ํ†ต์‹ ์„ ์œ ์šฉํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์Šคํ”„๋ง์—์„œ ์ œ๊ณตํ•˜๋Š” ํ…œํ”Œ๋ฆฟ์ด๋‹ค. Spring 5.0 ์ดํ›„๋ถ€ํ„ฐ ๋ ˆ๊ฑฐ์‹œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ฐ„์ฃผ๋˜์—ˆ๋‹ค. 1๏ธโƒฃ user-service์— RestTemplate์„ Spring Bean์œผ๋กœ ๋“ฑ๋ก @SpringBootApplication @Ena..

Spring Framework/โ˜๏ธ Spring Cloud

[Spring Cloud] Spring Cloud Bus์™€ RabbitMQ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Config ์ •๋ณด ๋ฐ˜์˜ํ•˜๊ธฐ

Configuration ์„œ๋ฒ„์—์„œ ์–ด๋– ํ•œ ๊ฐ’์„ ๋ณ€๊ฒฝ์‹œ์ผฐ์„ ๋•Œ microservices์— ๋ฐ˜์˜์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ์ด์ „์—๋Š” actuator๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ๊ฐ๊ฐ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋งˆ๋‹ค ์ˆ˜๋™์œผ๋กœ refresh ์‹œ์ผœ์ฃผ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋‹นํžˆ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ๊ฐœ์„ ์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ์ด Spring Cloud Bus ์ด๋‹ค. โ“Spring Cloud Bus๋ž€ ? ๋ถ„์‚ฐ์‹œ์Šคํ…œ์˜ ๋…ธ๋“œ(microservice)๋ฅผ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค(RabbitMQ)์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ์ƒํƒœ ๋ฐ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์—๊ฒŒ ์ „๋‹ฌํ•ด์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ๐Ÿ’ก ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋ž€? ๐Ÿ‘‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์‹œ์Šคํ…œ ๋ฐ ์„œ๋น„์Šค๊ฐ€ ์„œ๋กœ ๊ฐ„์— ํ†ต์‹ ํ•˜๊ณ  ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒ€์ฆ, ์ €์žฅ, ๋ผ์šฐํŒ…ํ•˜..

Spring Framework/โ˜๏ธ Spring Cloud

[Spring Cloud] Spring Cloud Config ๊ฐœ๋… ๋ฐ ์ ์šฉ ๋ฐฉ๋ฒ•

๊ฐ๊ฐ์˜ Microservice๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ตฌ์„ฑ์ •๋ณด ํŒŒ์ผ(.yml)๋“ค์ด ์ˆ˜์ •๋œ๋‹ค๋ฉด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•ด์•ผํ•œ๋‹ค. ์ด์™€ ๊ฐ™์€ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ๋œ์–ด๋‚ด๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑ์ •๋ณด ํŒŒ์ผ์„ ์™ธ๋ถ€๋กœ ๋ถ„๋ฆฌ์‹œํ‚จ๋‹ค๋ฉด ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ์šด์˜ ํ™˜๊ฒฝ์—์„œ๊นŒ์ง€ ๋ชจ๋“  ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ค์ •์„ ์œ„ํ•œ ์„œ๋ฒ„๋ฅผ ๋ณ„๋„๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ์‹คํ–‰ ์ค‘์ธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„œ๋ฒ„์—์„œ ์„ค์ • ์ •๋ณด๋ฅผ ํŒŒ์•…ํ•ด ๊ฐฑ์‹ ์‹œํ‚ค๋ฉด ๋นŒ๋“œ์™€ ๋ฐฐํฌ ์—†์ด ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค ! โ“ Spring Cloud Config ๋ž€? Spring Cloud Config๋Š” ๋ถ„์‚ฐ์‹œ์Šคํ…œ์—์„œ ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ์„ค์ •์ •๋ณด(application.yml)๋ฅผ ์™ธ๋ถ€์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ด์ฃผ๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. ์ค‘์•™ํ™”๋œ ์ €์žฅ์†Œ์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™˜๊ฒฝ์„ค์ •์„ ์ผ๊ด„์ ์œผ๋กœ ๊ด€๋ฆฌ..

Spring Framework/โ˜๏ธ Spring Cloud

[Spring Cloud] MSA์™€ Spring Cloud

์—ฌ๋Ÿฌ ๊ธฐ์—…๋“ค์˜ ์ฑ„์šฉ ๊ณต๊ณ ๋ฅผ ํ™•์ธํ•  ๋•Œ๋งˆ๋‹ค 'MSA' ๊ฐ€ ์–ธ๊ธ‰๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹ค. MSA๊ฐ€ ๋ฌด์—‡์ด๊ธธ๋ž˜ ๊ธฐ์—…๋งˆ๋‹ค ์–ธ๊ธ‰ํ•˜๋Š” ๋นˆ๋„๊ฐ€ ์žฆ์€์ง€ ํŒŒ์•…ํ•ด๋ณด๊ณ , MSA๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” Spring Cloud์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค. โ“ Cloud Native Architecture ๋ž€? ๐Ÿ”ท ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ์˜ ํŠน์ง• ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ณ ์„œ๋ฒ„ ๊ณ„์† ์„ค์น˜ X โž” ํด๋ผ์šฐ๋“œ ๋‚ด์—์„œ ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค ๋Š˜๋ ค์„œ ํ™•์žฅ์‹œํ‚ค๊ธฐ (scale out) ํƒ„๋ ฅ์  ์•„ํ‚คํ…์ณ ์ˆ˜๋™์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ buildํ•œ ํ›„ ๋ฐฐํฌ X โž” CI/CD๋ฅผ ํ†ตํ•ด ์ž๋™์œผ๋กœ ๋นŒ๋“œ ํ›„ ๋ฐฐํฌ ๐Ÿ‘‰ ๋น„์ฆˆ๋‹ˆ์Šค ํ™˜๊ฒฝ ๋ณ€ํ™”์— ๋Œ€ํ•œ ๋Œ€์‘ ์‹œ๊ฐ„ ๋‹จ์ถ• ๋ถ„ํ• ๋œ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค โž” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” ๋„๋ฉ”์ธ ํŠน์„ฑ์— ๋”ฐ๋ผ ์„œ๋น„์Šค ๊ฒฝ๊ณ„ ๊ตฌ๋ถ„ ๐Ÿ‘‰ ์„œ๋น„์Šค ์ข…์†์„ฑ ์ตœ์†Œํ™” & ์ƒํƒœ X Discove..

soogoori
'Spring Framework/โ˜๏ธ Spring Cloud' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก