๋ฐ˜์‘ํ˜•
์„œ๋ฒ„๊ฐ„ ํ†ต์‹  ์ค‘ ์ง€์—ฐ ๋ฐœ์ƒ์‹œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

    โ€ฃ ๋„คํŠธ์›Œํฌ ํƒ€์ž„์•„์›ƒ ์„ค์ •
    โ€ฃ ๋Œ€๊ธฐ์ค‘ ์š”์ฒญ์ˆ˜ ์ œํ•œ
    โ€ฃ ์—ฌ๋Ÿฌ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ๊ธฐ๋ฒ• ๊ตฌํ˜„
    โ€ฃ ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค ํŒจํ„ด๊ณผ ํด๋ฐฑ ๊ตฌํ˜„ ์„ค์ •

 

๋ถ€ํ•˜ ๋ถ„์‚ฐ ๋ฃฐ(rule)

์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ ๋„ทํ”Œ๋ฆญ์Šค์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ถ€ํ•˜๋ถ„์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ๊ณตํ•ด์ฃผ๋Š”๋ฐ,
๋„ทํ”Œ๋ฆญ์ŠคOSS ์—์„œ๋Š” ํ•ด๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฃฐ์ด๋ผ๊ณ  ํ•จ

์ข…๋ฅ˜

    โ€ฃ RoundrobinRule
        → ๋ผ์šด๋“œ ๋กœ๋นˆ ์‚ฌ์šฉ, ์œ ์ž…๋˜๋Š” ์š”์ฒญ์€ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์— ์ˆœ์ฐจ์ ์œผ๋กœ ๋ถ„์‚ฐ. ๊ธฐ๋ณธ!

    โ€ฃ AvailabilityFilteringRule
        → ์„ธ๋ฒˆ ์—ฐ๊ฒฐ ์‹คํŒจํ•˜๋ฉด ์„œํ‚ท ์ฐจ๋‹จ๋จ.
        → ์„œํ‚ท ์ฐจ๋‹จ ๋ฐ ๋™์‹œ์—ฐ๊ฒฐ์ด ๋งŽ์€๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋œ ์„œ๋ฒ„ ์ œ์™ธ.
        → RoundrobinRule ์„ ๋ฒ ์ด์Šค ํด๋ž˜์Šค๋กœ ์‚ฌ์šฉ.


    โ€ฃ WeightedReponseTimeRule
        → ์ธ์Šคํ„ด์Šค๋กœ ์ „๋‹ฌ๋˜๋Š” ํŠธ๋ž˜ํ”ฝ์˜ ๊ทœ๋ชจ๋Š” ์ธ์Šคํ„ด์Šค์˜ ํ‰๊ท  ์‘๋‹ต์‹œ๊ฐ„์— ๋ฐ˜๋น„๋ก€.
        → ์‘๋‹ต์‹œ๊ฐ„ ๊ธธ์ˆ˜๋ก ๋” ์ž‘์€ ๊ฐ€์ค‘์น˜ ๊ฐ€์ง.
        → ๋ถ€ํ•˜๋ถ„์‚ฐํด๋ผ์ด์–ธํŠธ๋Š” ๋ชจ๋“  ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค์˜ ํŠธ๋ž˜ํ”ฝ๊ณผ ์‘๋‹ต์‹œ๊ฐ„ ๊ธฐ๋กํ•จ.


    โ€ฃ BestAvailableRule
        → ์„œํ‚ท๋ธŒ๋ ˆ์ด์ปค๊ฐ€ ์ฐจ๋‹จ๋œ ์„œ๋ฒ„๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋™์‹œ ์š”์ฒญ์„ ๊ฐ€์žฅ ์ ๊ฒŒ ๋ฐ›์€ ์„œ๋ฒ„๋ฅผ ์„ ํƒ.

 

 

ํ˜ธ๋ฒ„ํ”Œ๋ผ์ด (Hoverfly)
์„ค๋ช…

HTTP ์„œ๋น„์Šค๋ฅผ ์Šคํ…ํ•˜๊ณ  ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ๊ฐ€๋ฒผ์šด ์‹œ๊ฐํ™” ๋„๊ตฌ.
DSL ์ •์˜์—์„œ ๋ฉ”์„œ๋“œ ํ•˜๋‚˜๋ฅผ ํ˜ธ์ถœํ•ด ๋ชจ๋“  ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ค‘์ธ ์„œ๋น„์Šค์˜ ๋ฉ”์„œ๋“œ์— ์ง€์—ฐ์„ ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ.
    → maven or gradle ์— hoverfly-java import ํ•„์š”, JUnit์— @ClassRule ์ •์˜ ํ•„์š”. 

 

์‹ค์Šต

โ€ฃโ€ฃโ€ฃ ์‹ค์Šต ์ฝ”๋“œ ๋งํฌ ๐Ÿ™‚

junit test class ์ผ๋ถ€

• junit test ์‹คํ–‰์‹œ hoverflyRule ์„ ๋จผ์ € ์‹คํ–‰ํ•˜๊ณ  ๊ฐ ํ…Œ์ŠคํŠธ๋ฉ”์†Œ๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. (ex. test() ์‹คํ–‰)
• test() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์— ์žˆ๋‹ค. ↓ ↓ ↓ ↓ ↓

junit test ํ˜ธ์ถœ ์ถœ๋ ฅ ๊ฒฐ๊ณผ, ๋ถ€ํ•˜๋ถ„์‚ฐ ์ฒ˜๋ฆฌ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
application.yml ์„ค์ •์ •๋ณด. (ํ…Œ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์˜ ์„ค์ •ํŒŒ์ผ์— ์ •์˜)

โ€ป https://www.baeldung.com/hoverfly ์—๋„ ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ๋‹ค. (์‚ฌ์‹ค ํ•ด๋‹น๊ธฐ๋Šฅ์„ ๋งŽ์ด ์“ฐ๋Š”์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค;)

 

 

๋ฆฌ๋ณธ(Ribbon)
์„ค๋ช…

- Client LoadBalancer ์ด๋‹ค.
- ๊ฐœ๋ฐœ์ž๊ฐ€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•œ๋‹ค. (L4 ์‚ฌ์šฉ์—†์ด)
- ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„๊ฐ€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ•œ๋‹ค! 
- ์œ ๋ ˆ์นด๋ž‘ ์‚ฌ์šฉ์‹œ ๊ฐ•๋ ฅํฌํ•˜๋‹ค ๐Ÿ‘
- ๋”์ด์ƒ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ•˜์ง€ ์•Š์Œ.

ribbon



โ€ป ๋ณดํ†ต์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ L4 switch ์„ ์ด์šฉํ•˜์—ฌ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ์ฒ˜๋ฆฌ๋ฅผ ํ• ๊ฒƒ์ด๋‹ค.
์ด๋ฅผ ์ด์šฉ์‹œ ์ถ”๊ฐ€ ์„œ๋ฒ„๋น„์šฉ ๋“ฑ์ด ๋ฐœ์ƒํ• ๊ฒƒ์ด๋‹ค.
์ด์—๋”ฐ๋ฅธ ์ ˆ์ฐจ๋„ ํ•„์š”ํ• ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค. 

L4 switch

 

์‹ค์Šต 

โ€ฃโ€ฃโ€ฃ ์‹ค์Šต ์ฝ”๋“œ ๋งํฌ ๐Ÿ™‚

๐Ÿ”† ์„œ๋ฒ„๊ฐ„ ํ†ต์‹ ํ•˜์—ฌ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ์ฒ˜๋ฆฌ ํ™•์ธ: Ribbon ์ ์šฉ ์„œ๋ฒ„์—์„œ Demo1 ์„œ๋ฒ„ ํ˜ธ์ถœ (ํฌํŠธ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ์ •์˜ํ•˜์—ฌ ์„œ๋ฒ„๋„์šฐ๊ธฐ)

• Ribbon ์ ์šฉ ์„œ๋ฒ„

# .. gradle ํŒŒ์ผ ๋‚ด ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•จ 

implementation 'org.springframework.cloud:spring-cloud-starter-netflix-ribbon:2.1.4.RELEASE'

~Application.java

 

application.yml

 

controller

→ ๋นจ๊ฐ„๋ฐ•์Šค๋ฅผ ๋ณด๋ฉด, demo1 ์œผ๋กœ ๋„๋ฉ”์ธ์„ ์ •์˜ํ•ด๋†“์•˜๋‹ค.
์ด๋Š” application.yml ์˜ demo1: ribbon: listOfServers ์ •๋ณด๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ํ•œ ๊ฒƒ์ด๋‹ค. (๋‚ด๋ถ€์ ์œผ๋กœ ์ธํ„ฐ์…‰ํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค๊ณ ํ•จ)


• Ribbon ์ ์šฉ ์„œ๋ฒ„์—์„œ ํ˜ธ์ถœํ•  ์„œ๋ฒ„ ์‹คํ–‰๊ตฌ์„ฑ 

์ธํ…”๋ฆฌ์ œ์ด์˜ ์‹คํ–‰/๋””๋ฒ„๊ทธ ๊ตฌ์„ฑ์—์„œ Spring Boot ์‹คํ–‰์ •๋ณด๋ฅผ ์…‹ํŒ…ํ•œ๋‹ค. (VM ์˜ต์…˜: -Dserver.port=์ •์˜ํฌํŠธ) ๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰! x N


...๊ทธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ! (API ํ˜ธ์ถœ)

๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ์ฒ˜๋ฆฌ๊ฐ€ ๋จ! ์™”๋‹ค๊ฐ”๋‹ค,, ์„œ๋ฒ„๋ณ„ API ํ˜ธ์ถœ ๊ฒฐ๊ณผ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

ํžˆ์ŠคํŠธ๋ฆญ์Šค (Hystrix)
์„ค๋ช…

- ๋ถ„์‚ฐ์‹œ์Šคํ…œ ๋‚ด์—์„œ ์„œ๋น„์Šค ๊ฐ„์˜ ์•ก์„ธ์Šค ์ง€์ ์„ ๊ฒฉ๋ฆฌํ•˜๊ณ , ์„œ๋น„์Šค ์ „๋ฐ˜์— ๊ฑธ์ณ ๊ณ„๋‹จ์‹ ์˜ค๋ฅ˜๋ฅผ ์ค‘์ง€ํ•˜๊ณ , ํด๋ฐฑ ์˜ต์…˜์„ ์ œ๊ณตํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰
- RxJava ์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง
- Failure as a First class citizen
   → ๋ถ„์‚ฐ์‹œ์Šคํ…œ์—์„œ๋Š” ์‹คํŒจ๋ฅผ 1๊ธ‰ ์‹œ๋ฏผ์œผ๋กœ ๊ฐ„์ฃผ.
- ๋”์ด์ƒ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ•˜์ง€ ์•Š์Œ. 

 

์‹ค์Šต

โ€ฃโ€ฃโ€ฃ ์‹ค์Šต ์ฝ”๋“œ ๋งํฌ ๐Ÿ™‚

๐Ÿ’ฅ ์„œ๋ฒ„(PirServer → Demo1Server ํ˜ธ์ถœ)๊ฐ„ ํ†ต์‹  ์ค‘, ์—๋Ÿฌ๋ฐœ์ƒ ์œ ๋„

1๏ธโƒฃ Hystrix ๋ฏธ์ ์šฉ: ์—๋Ÿฌ ๋…ธ์ถœ ํ™•์ธ

fallback ์ ์šฉ์ด ์•ˆ๋œ ๋ชจ์Šต



2๏ธโƒฃ Hystrix ์ ์šฉ: @HystrixCommand ๋ฐ fallback ์ ์šฉ

RestTemplate ์œผ๋กœ ํ˜ธ์ถœ ๋ฐ fallback ์ ์šฉ๋œ ๋ชจ์Šต

@HystrixCommand
- ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ์‹œ ๋ฉ”์†Œ๋“œ ์‹คํ–‰ ์„ฑ๊ณต/์‹คํŒจ ๊ฒฐ๊ณผ๋ฅผ ํ†ต๊ณ„๋ƒ„
- ํ†ต๊ณ„์— ๋”ฐ๋ผ ์„œํ‚ท ์˜คํ”ˆ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๊ณ  ์กฐ์น˜ํ•จ.

โ€ป ์„œํ‚ท ์˜คํ”ˆ
์ฃผ์–ด์ง„ ์‹œ๊ฐ„๋™์•ˆ ํ˜ธ์ถœ์ œํ•œ / ์—๋Ÿฌ๋ฐ˜ํ™˜ ํ•จ
์กฐ๊ธฐ์ฐจ๋‹จํ•˜์—ฌ ๋ณธ์ธ์„ ๋ณดํ˜ธํ•จ

- ์ •์˜ํ•ด๋†“์€ ๋ชจ๋“  ๋ฉ”์†Œ๋“œ๋Š” ์ •ํ•ด์ง„ ์‘๋‹ต์‹œ๊ฐ„ ๋‚ด์— ๋ฐ˜ํ™˜๋˜์–ด์•ผ ํ•จ. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด Exception ๋ฐœ์ƒ & fallback ์ •์˜ ์ˆ˜ํ–‰

 

โญ๏ธ Hystrix ๋ณด๋‹จ Resilience4j ์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ์ข‹์Œ.
- Resilience4j ๊ฐ€ Java8 ์ง€์› ๋ฐ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•ด์ค€๋‹ค๊ณ  ํ•จ.

 

 

 


์ฐธ๊ณ 

์ฑ…: ๋งˆ์Šคํ„ฐ๋ง ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ
๋งํฌ: https://www.youtube.com/watch?v=K4laj5cDYLg&list=PL9mhQYIlKEhdtYdxxZ6hZeb0va2Gm17A5&index=5 

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•
์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ (Service Discovery)
์„ค๋ช…

์„œ๋น„์Šค ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœ์‹œ, ์„œ๋น„์Šค์˜ ์œ„์น˜(IP, port) ๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
๊ด€๋ จ ์˜คํ”ˆ์†Œ์Šค๋กœ ๋„ทํ”Œ๋ฆญ์Šค OSS์˜ ์œ ๋ ˆ์นด(Eureka)๊ฐ€ ์กด์žฌ!

 

์œ ๋ ˆ์นด (Eureka)
์„ค๋ช…

์„œ๋ฒ„๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ์‹œ์ž‘๋˜๋ฉด ๊ทธ๊ฒƒ์„ ๊ฐ์ง€ํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋˜๊ณ , ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋ชฉ๋ก์—์„œ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ?!
์œ ๋ ˆ์นด์™€์˜ ํ†ตํ•ฉ์„ ์œ„ํ•œ ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๋‘๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค!

    โ€ฃ ์„œ๋ฒ„
      ๋“ฑ๋ก๋œ ์„œ๋น„์Šค์˜ ๋ชฉ๋ก์„ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•œ API & ์ƒˆ๋กœ์šด ์„œ๋น„์Šค๋ฅผ ๋„คํŠธ์›Œํฌ ์œ„์น˜ ์ฃผ์†Œ์™€ ํ•จ๊ป˜ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•œ API ์œผ๋กœ ๊ตฌ์„ฑ
      ๊ฐ ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ๋ณต์ œํ•ด ์„ค์ •ํ•˜๊ณ  ๋ฐฐํฌํ•จ์œผ๋กœ์จ ๊ฐ€์šฉ์„ฑ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค!
      ์„œ๋น„์Šค์˜ ๊ฐ ์ธ์Šคํ„ด์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์กด์‹ ํ˜ธ(heartbeat) ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š”๋‹ค. ์„ค์ •๋œ ๊ธฐ๊ฐ„๋™์•ˆ ์ƒ์กด์‹ ํ˜ธ๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์„œ๋น„์Šค๊ฐ€ ์‚ญ์ œ๋œ๋‹ค.

    โ€ฃ ํด๋ผ์ด์–ธํŠธ 
      ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ํ›„ ๋“ฑ๋ก & ์ข…๋ฃŒ ์ „ ๋“ฑ๋ก ํ•ด์ œ๋ฅผ ๋‹ด๋‹นํ•˜๊ณ  ์œ ๋ ˆ์ปค ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ตœ์‹  ์„œ๋น„์Šค ๋ชฉ๋ก์„ ๋ฐ›์•„์˜ด!

 

์‹ค์Šต

• eureka server 1๊ฐœ (eureka server) , client server 2๊ฐœ (demo1, demo2)

์œ ๋ ˆ์นด ์„œ๋ฒ„ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋“ค์˜ application.yml ๋“ค

    โ€ฃ eureka.client.service-url.defaultZone ์—๋Š” ์œ ๋ ˆ์นด ์„œ๋ฒ„ ์—ฌ๋Ÿฌ๊ฐœ ์„ค์ •๋„ ๊ฐ€๋Šฅํ•˜๋‹ค

์œ ๋ ˆ์นด ์„œ๋ฒ„ ๋ฐ ํด๋ผ์ด์–ธํŠธ ๋“ค์˜ ์–ด๋…ธํ…Œ์ด์…˜ ์„ค์ •๋“ค

    โ€ฃ @EnableDiscoveryClient: spring-cloud-commons์— ์กด์žฌ
    โ€ฃ @EnableEurekaClient: spring-cloud-netflix์— ์กด์žฌํ•˜๋ฉฐ, ์œ ๋ ˆ์นด๋งŒ์„ ์œ„ํ•ด ์ž‘๋™

 

์œ ๋ ˆ์นด ์„œ๋ฒ„ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋“ค์˜ build.gradle ์„ค์ •๋“ค


    โ€ฃ spring-cloud-starter-eureka-server vs spring-cloud-starter-netflix-eureka-server : ์ฐจ์ด์—†์Œ. ๊ทผ๋ฐ netflix ๋ถ™์€๊ฒƒ์„ ๊ถŒ์žฅํ•˜๋Š”๋“ฏ

 

 


์ฐธ๊ณ 

๋งํฌ: https://bcho.tistory.com/1252

 

MSA์—์„œ Service discovery ํŒจํ„ด

MSA์—์„œ Service discovery ํŒจํ„ด์˜ ์ดํ•ด ์กฐ๋Œ€ํ˜‘ (http://bcho.tistory.com) MSA์™€ ๊ฐ™์€ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์€ ์„œ๋น„์Šค ๊ฐ„์˜ ์›๊ฒฉ ํ˜ธ์ถœ๋กœ ๊ตฌ์„ฑ์ด ๋œ๋‹ค. ์›๊ฒฉ ์„œ๋น„์Šค ํ˜ธ์ถœ์€ IP ์ฃผ์†Œ์™€ ํฌํŠธ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ์‹์ด ๋˜๋Š”๋‹ค. ํด๋ผ

bcho.tistory.com

๋งํฌ: https://stackoverflow.com/questions/49885718/difference-between-spring-cloud-starter-eureka-server-and-spring-cloud-starte

 

 

difference between `spring-cloud-starter-eureka-server` and `spring-cloud-starter-netflix-eureka-server`

I am new to the Spring Cloud, what is the exact difference between spring-cloud-starter-eureka-server and spring-cloud-starter-netflix-eureka-server ? When we should go for spring-cloud-starter-e...

stackoverflow.com

์ฑ…: ๋งˆ์Šคํ„ฐ๋ง ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•
์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ (Spring Cloud)

โ€ฃ ๋ถ„์‚ฐ/๋ฒ„์ „๊ด€๋ฆฌ, ์„œ๋น„์Šค ๋“ฑ๋ก ๋ฐ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ, ๋ผ์šฐํŒ…, ์„œ๋น„์Šค๊ฐ„ ํ˜ธ์ถœ, ๋ถ€ํ•˜๋ถ„์‚ฐ, ํšŒ๋กœ์ฐจ๋‹จ๊ธฐ, ๋ถ„์‚ฐ๋ฉ”์„ธ์ง€ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ด๋‹ค.
โ€ฃ 
https://spring.io/projects/spring-cloud

 

Spring Cloud

Spring Cloud is an umbrella project consisting of independent projects with, in principle, different release cadences. To manage the portfolio a BOM (Bill of Materials) is published with a curated set of dependencies on the individual project. Go here to r

spring.io

โ€ฃ ์Šคํ”„๋ง๋ถ€ํŠธ ๋ฒ„์ „, ์Šคํ”„๋งํด๋ผ์šฐ๋“œ ๋ฒ„์ „ ์œ ์˜ํ•ด์„œ ์‚ฌ์šฉ ํ•„์š”!


12-ํŒฉํ„ฐ ์•ฑ(The Twelve-Factor App)

โ€ฃ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์‰ฝ๊ฒŒ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Œ.
โ€ฃ ์ง€์† ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋˜๋Š” Software as a Service(SaaS)๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก .
โ€ฃ ์Šคํ”„๋ง ๋ถ€ํŠธ & ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ๋Š” 12-ํŒฉํ„ฐ๋ฃฐ์— ๋ถ€ํ•ฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ & ์š”์†Œ ์ œ๊ณต
โ€ฃ https://12factor.net/ko/

 

The Twelve-Factor App (ํ•œ๊ตญ์–ด)

๋ฐฐ๊ฒฝ ์ด ๋ฌธ์„œ์— ๊ธฐ์—ฌํ•œ ์‚ฌ๋žŒ๋“ค์€ ์ˆ˜๋ฐฑ๊ฐœ ์•ฑ์˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ์— ์ง์ ‘ ์ฐธ์—ฌํ–ˆ์œผ๋ฉฐ, Heroku ํ”Œ๋žซํผ์„ ํ†ตํ•ด์„œ ๋ฐฉ๋Œ€ํ•œ ์•ฑ์˜ ๊ฐœ๋ฐœ, ์šด์˜, ํ™•์žฅ์„ ๊ฐ„์ ‘์ ์œผ๋กœ ๊ด€์ฐฐํ–ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ์‹ค์ œ๋กœ ์“ฐ์ด๋Š” ๋‹ค์–‘ํ•œ SaaS

12factor.net

โ€ป Software as a Service(SaaS)
์„œ๋น„์Šค ์‚ฌ์—…์ž๊ฐ€ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ธํ„ฐ๋„ท์ƒ์—์„œ ์ด์— ์›๊ฒฉ ์ ‘์†ํ•ด ํ•ด๋‹น ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ™œ์šฉํ•˜๋Š” ์„œ๋น„์Šค ๋ชจ๋ธ.
ERP..CRM..SLACK..

โ€ฃ https://medium.com/dtevangelist/12-factors-%EB%9E%80-b39c7ef1ed30

 

๋„ทํ”Œ๋ฆญ์Šค(Netflix) OSS

โ€ฃ ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋ฐ˜ ์ „ํ†ต์  ๊ฐœ๋ฐœ ๋ชจ๋ธ → ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜ํ•œ ์„ ๊ตฌ์ž
โ€ฃ ๋งŽ์€ ์˜คํ”ˆ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ์œ ๋ ˆ์นด(Eureka), ํžˆ์ŠคํŠธ๋ฆญ์Šค(Hystrix), ๋ฆฌ๋ณธ(Ribbon), ์ค„(Zuul) ๋“ฑ๊ณผ ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ์™€ ํ†ตํ•ฉ๋จ.

 

์œ ๋ ˆ์นด(Eureka)

โ€ฃ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ (์ „ํ™”๋ฒˆํ˜ธ๋ถ€ ์ฑ…)
    → ์™ธ๋ถ€์˜ ์„œ๋น„์Šค๋“ค์ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋…
    → ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ or API Gateway์„ ์ „๋‹ฌํ•˜๊ฒŒ๋˜๋ฉด serviceDiscovery ์— ์ „๋‹ฌ๋˜์–ด ํ•„์š” ์ •๋ณด๋ฅผ ์ฐพ์Œ

โ€ฃ ์„œ๋น„์Šค ์ •๋ณด ๋ฐ ์œ„์น˜์ •๋ณด ํ™•์ธ ๋“ฑ (Naming server)
โ€ฃ ์„œ๋ฒ„๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ์‹œ์ž‘๋˜๋ฉด ๊ทธ๊ฒƒ์„ ๊ฐ์ง€ํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋˜๊ณ , ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋ชฉ๋ก์—์„œ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•.

โ€ฃ ํด๋ผ์ด์–ธํŠธ & ์„œ๋ฒ„๋กœ ๊ตฌ๋ถ„
    • ํด๋ผ์ด์–ธํŠธ (discovery client)
          → ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ผ๋ถ€๋กœ ์›๊ฒฉ ๋””์Šค์ปค๋ฒ„๋ฆฌ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ์ผ์„ ๋‹ด๋‹น
          → ์—ฐ๊ฒฐ๋˜๋ฉด ์„œ๋น„์Šค ์ด๋ฆ„ & ๋„คํŠธ์›Œํฌ ์œ„์น˜๋ฅผ ๋‹ด์€ ๋“ฑ๋ก ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋ƒ„
          → ํ˜„์žฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ๋‹ค๋ฅธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ข…๋‹จ์ ์„ ํ˜ธ์ถœํ•ด์•ผ ํ•  ๊ฒฝ์šฐ, ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋“ฑ๋ก๋œ ์„œ๋น„์Šค ๋ชฉ๋ก์„ ๋‹ด์€ ์ตœ์‹ ์˜ ์ปจํ”ผ๊ทœ๋ ˆ์ด์…˜(์„ค์ •์ •๋ณด)๋ฅผ ๊ฐ€์ ธ์˜ด.
          → ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์บ์‹ฑํ•˜๊ณ  ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ฒดํฌํ•œ๋‹ค.
           ์œ ๋ ˆ์นด ์„œ๋ฒ„๊ฐ€ ๋ฉˆ์ถ”๋”๋ผ๋„ ์„œ๋น„์Šค๋“ค๋ผ๋ฆฌ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค! ์„œ๋น„์Šค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ๋กœ์ปฌ์— ์บ์‹ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ
          → spring-cloud-starter-netflix-eureka-client ์‚ฌ์šฉ

    • ์„œ๋ฒ„ (Service registry)
          → ๊ฐ ์„œ๋น„์Šค๋“ค๋กœ๋ถ€ํ„ฐ ์ƒ์กด์‹ ํ˜ธ? ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›๊ณ , ๋ฉ”์„ธ์ง€๋ฅผ ๋ชป๋ฐ›์œผ๋ฉด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ ์„œ๋น„์Šค ์‚ญ์ œ๋œ๋‹ค.
           ๋…๋ฆฝ์ ์ธ ์Šคํ”„๋ง ๋ถ€ํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์„ค์ •๋˜๊ณ  ์‹คํ–‰๋จ. ๊ฐ ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ๋‹ค๋ฅธ ์„œ๋ฒ„์— ๋ณต์ œํ•ด ๊ฐ€์šฉ์„ฑ(=์„œ๋น„์Šค ์ •์ƒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ์ •๋„)์ด ๋†’์Œ.
           pring-cloud-starter-netflix-eureka-server ์‚ฌ์šฉ

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/lecture/68382?tab=curriculum&volume=1.00&speed=1

 

ํžˆ์ŠคํŠธ๋ฆญ์Šค(Hystrix)

โ€ฃ ์„œํ‚ท๋ธŒ๋ ˆ์ด์ปคํŒจํ„ด ๊ตฌํ˜„ ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 
โ€ฃ ํด๋ฐฑ(fallback) ๋กœ์ง ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๊ฐ€๋Šฅ
โ€ฃ spring-cloud-starter-hystricx ์Šคํƒ€ํ„ฐ ์‚ฌ์šฉ

โ€ป ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค ํŒจํ„ด (circuit breaker pattern)
์„ฑ๊ณต ๋ฐ ์‹คํŒจ ์š”์ฒญ ํšŸ์ˆ˜๋ฅผ ์„ผ ๋‹ค์Œ, ์—๋Ÿฌ ๋น„์œจ์ด ๊ฐ€์ •๋œ ์ž„๊ณ„์น˜๋ฅผ ๋„˜์œผ๋ฉด ์ฐจ๋‹จ ๋ฐœ์ƒ ๋ฐ ์ดํ›„ ์‹คํŒจ์ฒ˜๋ฆฌํ•œ๋‹ค.
→ ๋ฌธ์ œ๋˜๋Š” ๋ถ€๋ถ„(๋Š๋ฆฐ๋ถ€๋ถ„)์„ ํŠน์ • ํ˜ธ์ถœ์„ ๊ฐ์ง€ํ•˜์—ฌ ์Šค๋ ˆ๋“œ๋ฅผ ์†Œ์ง„ํ•˜์ง€ ์•Š๊ณ  ๋น ๋ฅด๊ฒŒ ์‹คํŒจ์‹œ์ผœ ๋ฒ„๋ฆผ(์›๊ฒฉ ์ž์› ์‚ฌ์šฉ ๋ถ€๋ถ„ ์ œ๊ฑฐ)
→ ๋‹ค๋ฅธ์„œ๋น„์Šค์— ์˜ํ–ฅ ์•ˆ๊ฐ€๋„๋ก!
์ง€์ •๋œ ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ณ  ๋‚˜๋ฉด, ์žฌ์š”์ฒญ ํ›„ ์„œํ‚ท์€ ๋‹ซํ˜€ ์ •์ƒ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋„๋ก ํ•œ๋‹ค. 

 

๋ฆฌ๋ณธ(Ribbon)

โ€ฃ ํด๋ผ์ด์–ธํŠธ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์—ญํ• ,, ๊ทผ๋ฐ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ์ž˜ ๋˜์ง€ ์•Š์Œ,, ์ž˜ ์‚ฌ์šฉ ์•ˆํ•˜๊ฒŒ๋จ
โ€ฃ IP..port..ํ˜ธ์ถœ์ด ์•„๋‹Œ ์ด๋ฆ„๋งŒ ๊ฐ€์ง€๊ณ  ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅ... 
โ€ฃ ํด๋ผ์ด์–ธํŠธ ์ธก ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ
โ€ฃ HTTP, UDP, TCP ๋“ฑ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ํ”„๋กœํ† ์ฝœ ์ง€์›
โ€ฃ ๋™๊ธฐ๋ฐฉ์‹์˜ RESTํ˜ธ์ถœ, ๋น„๋™๊ธฐ, ๋ฆฌ์•กํ‹ฐ๋ธŒ ๋ชจ๋ธ๋„ ์ง€์›
โ€ฃ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ, ์บ์‹ฑ, ์ผ๊ด„์ฒ˜๋ฆฌ, ์žฅ์•  ๋‚ด์„ฑ๊ณผ ํ†ตํ•ฉ ๊ฐ€๋Šฅ.
โ€ฃ spring-cloud-starter-ribbon ์Šคํƒ€ํ„ฐ ์‚ฌ์šฉ
โ€ฃ springboot 2.4 ์ดํ›„ Maintenance ์ƒํƒœ 

 

์ค„(Zuul)

โ€ฃ API ๊ฒŒ์ดํŠธ์›จ์ด or API Service, Edge Service
โ€ฃ JVM ๊ธฐ๋ฐ˜ ๋ผ์šฐํ„ฐ, ์„œ๋ฒ„ ์ธก ๋ถ€ํ•˜ ๋ถ„์‚ฐ or ์ผ๋ถ€ ํ•„ํ„ฐ๋ง ์ˆ˜ํ–‰
โ€ฃ ์ธ์ฆ, ๋ถ€ํ•˜ ํ‰๊ท  ๋ถ„๋ฐฐ, ์ •์  ์‘๋‹ต ์ฒ˜๋ฆฌ, ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ๋“ฑ์— ์‚ฌ์šฉ.
โ€ฃ ์„ค์ • ๊ฐ€๋Šฅ ๋ฐ ๋…๋ฆฝ์  ์Šคํ”„๋ง ๋ถ€ํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์‹คํ–‰๋จ.
โ€ฃ spring-cloud-starter-zuul ์Šคํƒ€ํ„ฐ ์‚ฌ์šฉ
โ€ฃ springboot 2.4 ์ดํ›„ Maintenance ์ƒํƒœ 

 

โœป ์ตœ๊ทผ์—๋Š” Ribbon,, Zuul ๋ณด๋‹จ, Spring Cloud Gateway ์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์„ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•จ.
https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now#spring-cloud-netflix-projects-entering-maintenance-mode

https://happycloud-lee.tistory.com/218โ€‹

 

[SC12] Spring Cloud Gateway ๋ž€ ?

1. Spring Cloud Gateway(SCG) ์ดํ•ด 1) WHY ? SCG๋Š” API Gateway์˜ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ API Gateway๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€ ๋จผ์ € ์ดํ•ดํ•˜๋Š”๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Zuul serverํŽธ์—์„œ ์„ค๋ช…ํ•œ๋ฐ”์™€ ๊ฐ™์ด API Gateway๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ..

happycloud-lee.tistory.com

 

 

ํŽ˜์ธ(Feign)

โ€ฃ REST Client
โ€ฃ Interface ์„ ์–ธ์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ HttpClient ์„ ์ƒ์„ฑ 
โ€ฃ ์›น ์„œ๋น„์Šค ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๋„๋ก ๋„์™€์คŒ.
โ€ฃ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ (๋ฆฌํ„ด๊ฐ’๋งŒ ๊ด€์‹ฌ,, ์–ด๋–ค URL ์ธ์ง€ ์–ด๋–ป๊ฒŒ ์‘๋‹ต๊ฐ’์„ ํŒŒ์‹ฑํ• ์ง€๋Š” ๊ด€์‹ฌ์—†์Œ)

โ€ฃ spring-cloud-starter-feign ์Šคํƒ€ํ„ฐ ์‚ฌ์šฉ
โ€ฃ ๋ฆฌ๋ณธ ํด๋ผ์ด์–ธํŠธ์™€ ํ†ตํ•ฉ๋ผ ๋””์Šค์ปค๋ฒ„๋ฆฌ ์„œ๋น„์Šค์™€ ํ†ต์‹ , ๋ถ€ํ•˜๋ถ„์‚ฐ ๊ฐ™์€ ๊ธฐ๋Šฅ ์ œ๊ณต.

 

https://erea.tistory.com/14

 

 

๋ถ„์‚ฐ ์ปจํ”ผ๊ทœ๋ ˆ์ด์…˜ ๊ด€๋ฆฌ

โ€ฃ ์„ค์ •์ •๋ณด ํŒŒ์ผ์„ ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€๊ฐ€ ์•„๋‹Œ, ์™ธ๋ถ€์—์„œ ๊ด€๋ฆฌํ•˜๋Š”๊ฒƒ (์ค‘์•™ํ™” ๋œ ์ €์žฅ์†Œ์—์„œ ๊ตฌ์„ฑ ์š”์†Œ ๊ด€๋ฆฌ)
โ€ฃ ๊ฐ ์„œ๋น„์Šค๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜์ง€์•Š๊ณ  ๋ฐ”๋กœ ์ ์šฉ! (์ค‘์•™์— ์žˆ์œผ๋ฏ€๋กœ)
โ€ฃ ์„œ๋ฒ„๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์ค‘์•™ ์žฅ์†Œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋ชจ๋“  ์™ธ๋ถ€ ์†์„ฑ์ด ๋ชจ๋“  ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌ๋จ. (key, value.. yml file..)
โ€ฃ ์„ค์ • ํŒŒ์ผ์€ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋˜๋Š” ์„œ๋ฒ„ ํด๋ž˜์Šค ๊ฒฝ๋กœ์— ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. (vault..)

โ€ป Vault 
ํ† ํฐ ๋ฐ ํŒจ์Šค์›Œ๋“œ ์ž๊ฒฉ์ฆ๋ช…์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋„๊ตฌ
ํ•ด์‹œ์ฝ”ํ”„(HashCorp)์—์„œ ๋งŒ๋“ฌ
์ž๊ฒฉ ์ •๋ณด ๋“ฑ์„ ์•ˆ์ „ํ•œ ์žฅ์†Œ์— ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜์—ฌ ๋ณด์•ˆ์ด์Šˆ์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‹ค.
API ์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ (API๋Š” ๊ธฐ๋ณธ ์ธ์ฆ์œผ๋กœ ๋ณดํ˜ธ๋จ)
ํ‚ค/๊ณต๊ฐœ ํ‚ค ์ธ์ฆ์„ ์‚ฌ์šฉํ•œ SSL ์—ฐ๊ฒฐ ์„ค์ •๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

โ€ฃ spring-cloud-config-server ์˜์กด์„ฑ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™œ์„ฑํ™”

 

์ปจ์„ค(Consul)

โ€ฃ ๋„ทํ”Œ๋ฆญ์Šค ๋ฆฌ๋ณธ๊ณผ ๋™์  ๋ผ์šฐํ„ฐ, ๋„ทํ”Œ๋ฆญ์Šค Zuul์˜ filter๋ฅผ ์ง€์›
โ€ฃ spring-cloud-starter-consul-discovery ์˜์กด์„ฑ ์‚ฌ์šฉ

 

์•„ํŒŒ์น˜ ์ฃผํ‚คํผ(Apache Zookeeper)

โ€ฃ ์ปจํ”ผ๊ทœ๋ ˆ์ด์…˜๊ณผ ์ด๋ฆ„์„ ์œ ์ง€ํ•˜๋Š” ์ค‘์•™ ์„œ๋น„์Šค๋กœ ๋ถ„์‚ฐ ๋™๊ธฐํ™”, ๊ทธ๋ฃน ์„œ๋น„์Šค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ. 
โ€ฃ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ๋œ ๋ฉ”์„ธ์ง€ ํ ์ •๋ณด๋“ค ๊ด€๋ฆฌ, kafka ์„œ๋ฒ„ ๊ฐ€๋™ํ•˜๋ ค๋ฉด zookeeper๊ฐ€ ๊ตฌ๋™๋˜์–ด ์žˆ์–ด์•ผ ํ•จ.
โ€ฃ ํด๋ผ์ด์–ธํŠธ ์ธก์— ์ฃผํ‚คํผ๋ฅผ ์‚ฌ์šฉํ•œ ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด spring-cloud-startet-zookeeper-discovery, ์•„ํŒŒ์น˜ ํ๋ ˆ์ดํ„ฐ๋ฅผ ์˜์กด์„ฑ์— ํฌํ•จ.
โ€ฃ ๋ถ„์‚ฐ ์ปจํ”ผ๊ทœ๋ ˆ์ด์…˜ ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ™œ์„ฑํ™” ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” spring-cloud-starter-zookeeper-config ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•„์š”.

 

 

๋ถ„์‚ฐ์ถ”์ 

์Šฌ๋ฃจ์Šค(Sleuth)

โ€ฃ ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ์ฒ˜๋ฆฌํ• ๋•Œ ์ด์–ด์ง€๋Š” ์š”์ฒญ์„ ์—ฐ๊ด€์ง€์Œ
โ€ฃ Slf4j, MDC๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค.
โ€ฃ spring-cloud-starter-sleuth ์˜์กด์„ฑ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™œ์„ฑํ™”

โ€ป Slf4j
๋กœ๊ทธ๋ฐฑ log4j, logging ๋“ฑ๊ณผ ๊ฐ™์€ ํŠน์ • ๋กœ๊น… ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ถ”์ƒํ™” ํผ์‚ฌ๋“œ(Facade=์ปค๋‹ค๋ž€ ์ฝ”๋“œ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊ฐ„๋žตํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต)๋ฅผํ•จ

โ€ป MDC (mapped diagnostic context)
๋‹ค์–‘ํ•œ ์†Œ์Šค์˜ ๋กœ๊ทธ ์ถœ๋ ฅ์„ ๊ตฌ๋ถ„ํ•˜๊ณ  ์‹ค์ œ ๋ฒ”์œ„์— ์—†๋˜ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์†”๋ฃจ์…˜ 

 

 

๋ฉ”์„ธ์ง•

 

๋ฒ„์Šค(bus)

โ€ฃ ๋ถ„์‚ฐ์‹œ์Šคํ…œ์˜ ๋…ธ๋“œ(๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค)๋ฅผ ๊ฒฝ๋Ÿ‰ ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค(RabbitMQ)์™€ ์—ฐ๊ฒฐ
โ€ฃ ์ƒํƒœ ๋ฐ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์—๊ฒŒ ์ „๋‹ฌ (๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์—๊ฒŒ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์•Œ๋ ค์คŒ)
โ€ฃ ์ปจํ”ผ๊ทœ๋ ˆ์ด์…˜ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ์˜ ์ „๋‹ฌ ๋“ฑ ๊ณตํ†ต ์˜คํผ๋ ˆ์ด์…˜์„ ์œ„ํ•œ ๋ถ„์‚ฐ ๋ฉ”์„ธ์ง• ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ŠคํŠธ๋ฆผ(Stream)

โ€ฃ ๋ฉ”์„ธ์ง€ ์ค‘์‹ฌ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋กœ ๊ตฌ์„ฑ๋œ ์‹œ์„ธํ‹ˆ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ์˜ฌ๋ฐ”๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ
โ€ฃ ๋‘๊ฐœ์˜ ๋ฐ”์ธ๋”๊ฐ€ ์กด์žฌ (AMQP, Apache Kafka)
โ€ฃ ์Šคํ”„๋ง ์ธํ…Œ๊ทธ๋ ˆ์ด์…˜์— ๊ธฐ๋ฐ˜. ์ข…๋‹จ์ , ์ฑ„๋„, ์• ๊ทธ๋ฆฌ๊ฒŒ์ดํ„ฐ, ํŠธ๋žœ์Šคํฌ๋จธ์™€ ๊ฐ™์€ ๋Œ€๋ถ€๋ถ„์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ†ตํ•ฉ ํŒจํ„ด์„ ์ง€์›ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์„ ์ œ๊ณต
โ€ฃ ๋งˆ์ดํฌ๋กœ์‹œ์Šคํ…œ ๋‚ด์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ ์ŠคํŠธ๋ฆผ ์ž…๋ ฅ & ์ถœ๋ ฅ ์ฑ„๋„์„ ํ†ตํ•ด ํ†ต์‹ ํ•จ. 
โ€ฃ ๊ตฌ๋…/๊ฒŒ์‹œ ๋“ฑ ๋ฉ”์„ธ์ง€ ๊ณต์œ  ํ† ํ”ฝ์„ ํ†ตํ•ด ์ „ํŒŒ. (์›น์†Œ์ผ“ ํ†ต์‹ ๋ฐฉ์‹ ๊ฐ™์€๊ฑด๊ฐ€,,)

โ€ป AMQP (Advanced Message Queue Protocol)
๋ฉ”์„ธ์ง• ํ”„๋กœํ† ์ฝœ (MQ(๋ฉ”์„ธ์ง€ํ) ๊ธฐ๋ฐ˜)
HTTP ํ”„๋กœํ† ์ฝœ๊ณผ ๋‹ฌ๋ฆฌ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์˜ ์ •์˜ ๋ฟ ์•„๋‹ˆ๋ผ ์„œ๋ฒ„ ์ธก ์„œ๋น„์Šค์™€ ๋™์ž‘ ๋ฐฉ์‹๋„ ์ •์˜ํ•œ๋‹ค.
๊ด€๋ จ ๋ฏธ๋“ค์›จ์–ด : RabbitMQ, Erlang
๋ฉ”์„ธ์ง€๋ธŒ๋กœ์ปค
์˜คํ”ˆ์†Œ์Šค ๋ฉ”์„ธ์ง€ ์†Œํ”„ํŠธ์›จ์–ด
https://www.youtube.com/watch?v=80y2C54KPxg
๋ฐ›๋Š” ์†Œ๋น„์ž ์ค‘์‹ฌ
โ€ป Apache Kafka
Scala์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋œ ์˜คํ”ˆ์†Œ์Šค ๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค ํ”„๋กœ์ ํŠธ
์ด๋ฒคํŠธ๋ธŒ๋กœ์ปค (๋ฉ”์„ธ์ง€ ๋ธŒ๋กœ์ปค ๊ธฐ๋Šฅ ํฌํ•จ)
๋ถ„์‚ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์„ค๊ณ„๋œ ์˜คํ”ˆ์†Œ์Šค ๋ฉ”์„ธ์ง• ํ”Œ๋žซํผ
๋ฉ”์„ธ์ง€ ๋ฐœํ–‰/๊ตฌ๋… ์‹œ์Šคํ…œ (Pub/Sub)
๋ณด๋‚ด๋Š” ์ƒ์‚ฐ์ž ์ค‘์‹ฌ

 

 

ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ์ง€์›

โ€ฃ ํ”ผ๋ณดํƒˆ..SQS,,SNS,,ElasticCache,,RDS,,๋“ฑ์ด ์žˆ๋‹ค.
โ€ฃ ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ ํŽ‘์…˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋‹ค. FaaS(Function-as-a-Service),,AWS Lambda
โ€ฃ SMTP..rabbitMQ,,Redis,,

 

 

๋ณด์•ˆ๊ด€๋ฆฌ ํ™œ์„ฑํ™”

โ€ฃ spring-cloud-starter-security ์˜์กด์„ฑ ์ถ”๊ฐ€

 

 

๋ฆด๋ฆฌ์ฆˆ ํŠธ๋ ˆ์ธ

โ€ฃ ํ•˜์œ„ ํ”„๋กœ์ ํŠธ์˜ ํ˜ผ๋ž€์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ๋ฒ„์ „์ด ์•„๋‹Œ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„
โ€ฃ BOM(Bill of materials)์— ๊ธฐ๋ฐ˜ → ์•„ํ‹ฐํŒฉํŠธ ๋ฒ„์ „์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ํ‘œ์ค€ ๋ฉ”์ด๋ธ ๊ฐœ๋….
โ€ฃ https://spring.io/projects/spring-cloud-stream

 

 


์ฐธ๊ณ 

๋งํฌ: https://m.blog.naver.com/quart21c/173614581

 

ํด๋ผ์šฐ๋“œ์ปดํ“จํŒ…์˜ SaaS, PaaS, laaS์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ๊นŒ์š”.

ํด๋ผ์šฐ๋“œ์ปดํ“จํŒ… ๋•Œ ์ž์ฃผ ๋“ฃ๋Š” SaaS, PaaS, LaaS์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ๊นŒ์š”. ํด๋ผ์šฐ๋“œ์ปดํ“จํŒ…, ํด๋ผ...

blog.naver.com

๋งํฌ: https://coe.gitbook.io/guide/gateway/zuul

 

Zuul - guide

๋™์  ๋ผ์šฐํŒ…, ๋ชจ๋‹ˆํ„ฐ๋ง, ํšŒ๋ณต ํƒ„๋ ฅ์„ฑ, ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ง€์› (Filters๋ฅผ ํ†ตํ•œ ๊ตฌํ˜„)

coe.gitbook.io

๋งํฌ: https://sup2is.github.io/2020/04/12/spring-cloud-hystrix-circuit-breaker-with-fallback.html

 

Sup2's blog-Spring Cloud์—์„œ Hystrix๋ฅผ ์‚ฌ์šฉํ•œ Circuit Breaker ๊ตฌํ˜„ํ•˜๊ธฐ Feat.Fallback

 

sup2is.github.io

์ฑ…: http://www.yes24.com/Product/Goods/66581779

 

๋งˆ์Šคํ„ฐ๋ง ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ - YES24

๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ๋ณด์•ˆ ๊ฐ•ํ™”, ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ์ž!ํด๋ผ์šฐ๋“œ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ๊ฒƒ์€ ๋กœ์ปฌ ์• ํ”Œ๋ฆฌ

www.yes24.com

๋งํฌ: http://blog.skby.net/amqp-advanced-message-queue-protocol/

 

AMQP (Advanced Message Queue Protocol) > ๋„๋ฆฌ์˜ ๋””์ง€ํ„ธ๋ผ์ดํ”„

I. ์‘์šฉ ๊ณ„์ธต ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ํ‘œ์ค€, AMQP ๊ฐ€. AMQP(Advanced Message Queue Protocol)์˜ ๊ฐœ๋… ํด๋ผ์ด์–ธํŠธ ๋ฏธ๋“ค์›จ์–ด ๋ธŒ๋กœ์ปค ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ MQ๊ธฐ๋ฐ˜ ๋ฉ”์‹œ์ง€ ๊ตํ™˜ ํ”„๋กœํ† ์ฝœ ๋‚˜. AMQP ํŠน์ง• ์ด๊ธฐ์ข… ๊ฐ„ ๋ฉ”์‹œ์ง€ ๊ตํ™˜

blog.skby.net

๊ฐ•์˜: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4/lecture/68407?tab=curriculum&volume=1.00&speed=1

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•
์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ
์„ค๋ช…

ํด๋ผ์šฐ๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ
์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ๋“ค์„ ์ œ๊ณตํ•ด์ค€๋‹ค.


    โ–ถ๏ธŽ ๋ถ„์‚ฐ / ๋ฒ„์ „ ์ปจํ”ผ๊ทœ๋ ˆ์ด์…˜
        • ๋ถ„์‚ฐ ์ปจํ”ผ๊ทœ๋ ˆ์ด์…˜์€ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํ™˜๊ฒฝ์—์„œ ์ธ๊ธฐ์žˆ๋Š” ํ‘œ์ค€์ด๋‹ค. 
        • ์Šคํ”„๋ง ์ปจํ”ผ๊ทธ๋Š” ๋ถ„์‚ฐ์‹œ์Šคํ…œ์—์„œ ์™ธ๋ถ€ ์ปจํ”ผ๊ทœ๋ ˆ์ด์…˜์„ ์œ„ํ•ด ์„œ๋ฒ„ ์ธก๊ณผ ํด๋ผ์ด์–ธํŠธ ์ธก์„ ์ง€์›ํ•œ๋‹ค.
            → ์ค‘์•™ ๋‹จ์ผ ์ €์žฅ์†Œ ์ƒ์„ฑ๋จ. ... vault..
        • ์ฃผํ‚คํผ(Zookeeper) ๋“ฑ์ด์žˆ๋‹ค..


    โ–ถ๏ธŽ ์„œ๋น„์Šค ๋“ฑ๋ก & ๋””์Šค์ปค๋ฒ„๋ฆฌ
        • ๋””์Šค์ปค๋ฒ„๋ฆฌ๋Š” ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์ƒ์˜ ๋””๋ฐ”์ด์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋””๋ฐ”์ด์Šค&์„œ๋น„์Šค๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๋Š” ์„œ๋น„์Šค์ด๋‹ค.
            → ๊ฐ ์„œ๋น„์Šค๋“ค ์‹คํ–‰์‹œ ์ค‘์•™ ์„œ๋ฒ„์— ์ž์‹ (์„œ๋น„์Šค)์„ ๋“ฑ๋กํ•˜๋Š”๊ฒƒ. (IP, Port ๋“ฑ)
            → ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ๊ฐ ์„œ๋ฒ„์ธ์Šคํ„ด์Šค๋“ค์ด ์˜คํ† ์Šค์ผ€์ผ๋ง ๋˜๊ฑฐ๋‚˜, ์ƒ์„ฑ ํ™•์žฅ๋“ฑ์ด ๋ ๋•Œ IP or Port ๋“ฑ์ด ๋ณ€๊ฒฝ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์ •๋ณด๋“ค์„ ์บ์น˜ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์‚ฌ์šฉํ•จ.
        • ๋„ทํ”Œ๋ฆญ์Šค OSS(Open Source Software) ์˜ ๋””์Šค์ปค๋ฒ„๋ฆฌ ํŒจํ‚ค์ง€ ์œ ๋ ˆ์นด(Eureka)๊ฐ€ ์žˆ๋‹ค.
        • ์œ ๋ ˆ์นด๋Š” ํด๋ผ์ด์–ธํŠธ & ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ์ด ๋˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๋Š” ์›๊ฒฉ ๋””์Šค์ปค๋Ÿฌ๋น„์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ์ผ์„ ๋‹ด๋‹นํ•˜๊ณ 
์„œ๋ฒ„๋Š” ๋…๋ฆฝ์ ์ธ ์Šคํ”„๋ง๋ถ€ํŠธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ด๋‹นํ•œ๋‹ค.


    โ–ถ๏ธŽ ๋ผ์šฐํŒ…
        • ๋„ทํ”Œ๋ฆญ์Šค OSS(Open Source Software) ์˜ ์ค„(Zuul)์ด ์žˆ๋‹ค.
        • ์ค„์€ ๋ถ€ํ•˜๋ถ„์‚ฐ ๋ฐ ํ•„ํ„ฐ๋ง์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ฒŒ์ดํŠธ์›จ์ด๋กœ์จ์˜ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.


    โ–ถ๏ธŽ ์„œ๋น„์Šค๊ฐ„ ํ˜ธ์ถœ

        • API ๊ฒŒ์ดํŠธ์›จ์ด์—์„œ ๊ฐ ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, ๋„๋ฉ”์ธ์œผ๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  IP๋“ฑ์œผ๋กœ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉด ๋ณ€๊ฒฝ๋œ IP์— ๋Œ€ํ•ด์„œ๋Š” ๊ด€๋ จ ๋‚ด์šฉ์„ ์—…๋ฐ์ดํŠธ ํ•ด์ค˜์•ผ ํ•จ
        • ๋””์Šค์ปค๋ฒ„๋ฆฌ ์„œ๋น„์Šค๋Š” ์ธ์Šคํ„ด์Šค์˜ ID๋‚˜ ์ด๋ฆ„์œผ๋กœ ํ˜ธ์ถœํ•˜๊ธฐ์—, ๋ณ€๊ฒฝ๋œ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Œ. 
        • API ํ†ต์‹ ํ• ๋•Œ ์‚ฌ์šฉํ•˜๋Š” RestClient ์ข…๋ฅ˜๋กœ ๋„ทํ”Œ๋ฆญ์Šค OSS(Open Source Software) ์˜ํŽ˜์ธ(Feign) ์ด ์žˆ๋‹ค.


    โ–ถ๏ธŽ ๋ถ€ํ•˜๋ถ„์‚ฐ
        • ๋ผ์šด๋“œ ๋กœ๋นˆ ๊ทœ์น™์„ ๊ฐ€์ง€๊ณ  ๋””์Šค์ปค๋ฒ„๋ฆฌ์— ๋“ฑ๋ก๋œ ์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. (๋ถ€ํ•˜๋ถ„์‚ฐ๊ธฐ)
        • ๋„ทํ”Œ๋ฆญ์Šค OSS(Open Source Software) ์˜ ๋ฆฌ๋ณธ(Ribbon) ์ด
์žˆ๋‹ค.


    โ–ถ๏ธŽ ์„œํ‚ท๋ธŒ๋ ˆ์ด์ปค
        • ๋„คํŠธ์›Œํฌ ํƒ€์ž„์•„์›ƒ ๋ฌธ์ œ ํ•ด๊ฒฐ 
        • ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค: ์„ฑ๊ณต & ์‹คํŒจ ํ™•๋ฅ ์„ ์ €์žฅ
        • ์ž„๊ณ„์น˜๊ฐ€ ๋„˜์œผ๋ฉด ์ฐจ๋‹จ! 
        • ํด๋ฐฑ(fallback) ๋กœ์ง ์ˆ˜ํ–‰!


    โ–ถ๏ธŽ ๋ถ„์‚ฐ ๋ฉ”์„ธ์ง• 
        • AMQP, Apache kafka ๋“ฑ์ด ์žˆ๋‹ค.

 

 

ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜
์„ค๋ช…

ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ์œ„ํ•ด ์ž˜ ์„ค๊ณ„๋œ ํ”„๋กœ๊ทธ๋žจ
https://docs.spring.io/spring-cloud-commons/docs/3.1.1/reference/html/

 

 

 


์ฐธ๊ณ 

์ฑ…: http://www.yes24.com/Product/Goods/66581779
๋งํฌ: https://mangchhe.github.io/springcloud/2021/04/07/ServiceDiscoveryConcept/

 

[Spring Cloud] Service Discovery๋ž€?

Service Discovery๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€, Service Discovery์˜ ์ข…๋ฅ˜์™€ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด์ž

mangchhe.github.io

๋งํฌ: https://www.baeldung.com/spring-cloud-bootstrapping

 

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

ํ•˜๋‚˜์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฌ๋Ÿฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ชผ๊ฐ ๊ฒƒ (๋Š์Šจํ•œ ์—ฐ๊ฒฐ)
    → ํ”„๋กœ์ ํŠธ ์ฐธ์—ฌ์ž๊ฐ€ ์„œ๋น„์Šค ํŒŒ์•…์— ์šฉ์ด (์ชผ๊ฐœ์ ธ ์žˆ์œผ๋ฏ€๋กœ!)
    → ๋ถ„๋ฆฌ๋œ ์„œ๋น„์Šค๋ฅผ ๊ฐ ๋‹ด๋‹น์ž๋“ค์ด ๋‚˜๋ˆ  ๊ด€๋ฆฌํ•จ.
    → ์ชผ๊ฐœ์ ธ์žˆ์–ด ์„œ๋น„์Šค๊ฐ„ ๋ฐฐํฌ์— ์˜ํ–ฅ๋„ X
    → ํ™•์žฅ์„ฑ, ๋…๋ฆฝ์„ฑ, ์œ ์—ฐ์„ฑ

์ž‘๊ณ  ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„์ด๊ณ  ์ค‘์•™์—์„œ ๊ด€๋ฆฌ๊ฐ€ ๋จ.
    → ๋„คํŠธ์›Œํฌ ์œ„์น˜, ์ปจํ”ผ๊ทœ๋ ˆ์ด์…˜(configuration), ๋กœ๊น…ํŒŒ์ผ, ๋ฉ”ํŠธ๋ฆญ๋“ฑ์€ ์ค‘์•™์—์„œ ๊ด€๋ฆฌ๋จ.

โ€ป ๋ฉ”ํŠธ๋ฆญ
์†Œํ”„ํŠธ์›จ์–ด์˜ ์†์„ฑ์ด๋‚˜ ๊ทœ๊ฒฉ์„ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ํ‘œ.
ํ”„๋กœ๊ทธ๋žจ์˜ ๋ณต์žก์„ฑ, ์ฝ”๋“œ๋ณ„ ๋ฒ„๊ทธ์˜ ์ˆ˜, ์ˆ˜์š”์ž ์š”๊ตฌ ์‚ฌํ•ญ์˜ ์ˆ˜ ๋”ฐ์œ„๋ฅผ ์ธก์ •ํ•œ๋‹ค.

 

 


์ฐธ๊ณ 

์ฑ…: http://www.yes24.com/Product/Goods/66581779

 

๋งˆ์Šคํ„ฐ๋ง ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ - YES24

๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ๋ณด์•ˆ ๊ฐ•ํ™”, ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ์ž!ํด๋ผ์šฐ๋“œ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ๊ฒƒ์€ ๋กœ์ปฌ ์• ํ”Œ๋ฆฌ

www.yes24.com

๋งํฌ: https://badadict.com/ko/1623891โ€‹

 

๋ฐ˜์‘ํ˜•

+ Recent posts