π Spring Cloud Config

- λΆμ° μμ€ν μμ μλ²μ ν΄λΌμ΄μΈνΈμ ꡬμ±μ νμν μ€μ μ 보( application.yml λ± )λ₯Ό μΈλΆ μμ€ν μμ κ΄λ¦¬ ν΄μ€λ€.
- νλμ μ€μν λ μ μ₯μμμ ꡬμ±μμ κ΄λ¦¬λ₯Ό ν μ μλ€.
- μ¦, νκ²½μ€μ μ λν΄μλ μΌκ΄μ μΌλ‘ κ΄λ¦¬νκ³ κ°κ°μ λΆλ¦¬λμ΄μλ νκ²½μμ μ€νν μ μλλ‘ μ§μν΄μ£Όλ μμ€ν μ΄λ€.
- κ° μλΉμ€λ₯Ό λ€μ λΉλνμ§ μκ³ , λ°λ‘ μ μ© κ°λ₯νλ€.
- μ ν리μΌμ΄μ λ°°ν¬ νμ΄νλΌμΈμ ν΅ν΄ DEV-UAT-PROD κ°κ°μ νκ²½μ μλ§λ κ΅¬μ± μ 보λ₯Ό μ¬μ©ν μ μλ€.
- κΉ λ¦¬ν¬μ§ν 리 λλ μνΈνλ λ°μ΄ν°, λ‘컬 νμΌ μμ€ν μ μλ νΉμ λλ ν 리μ νμΌλ±μ μ΄μ©ν΄ κ΅¬μ± μμλ₯Ό μ μ₯ν μ μμ.
βοΈ configuration κ°μ λ³κ²½ν ν refresh νκΈ°
- μλ² μ¬κΈ°λ
- λ§€λ² μ¬κΈ°λ νλ λ°©μμ λ무 λΆνΈνλ€. λ³λ‘ μ’μ λ°©μμ μλλ€.
- Actuator refresh
- Spring Boot Actuator
- Application μν, λͺ¨λν°λ§ κΈ°λ₯μ μ 곡νλ€.
- λ³λλ‘ applicationμ κΈ°λνμ§ μμλ Metric μμ§μ μν Http End Pointλ₯Ό μ 곡νλ€.
- actuator/refresh λ₯Ό νΈμΆν΄ λ§μ΄ν¬λ‘ μλΉμ€λ€μ μ¬λΆν νμ§ μκ³ λ λ³κ²½λ κ΅¬μ± μ 보λ₯Ό λ°μμν¬ μ μλ€.
- λ§μ΄ν¬λ‘ μλΉμ€κ° μμ, μλ°±κ°κ° λλ€λ©΄ κ°κ°μ μ΄ν리μΌμ΄μ λ§λ€ actuator/refresh λ₯Ό μλμΌλ‘ νΈμΆν΄μΌνλ―λ‘ κ²°κ΅ λ²κ±°λ‘μ΄ λ°©μμ΄λΌλ μ μ λ§μ°¬κ°μ§ μ΄λ€.
- Spring Boot Actuator
- Spring Cloud Bus
- λΆμ° μμ€ν μ λ Έλ( MS )λ€ λΌλ¦¬ μ°κ²°λ μ μλ λ©μμ§ λΈλ‘컀( RabbitMQ λ± )μ μ°κ²°
- μν λ° κ΅¬μ±μ λν λ³κ²½ μ¬νμ μ°κ²°λ λ Έλμκ² μ λ¬( Brodcast )ν΄μ€λ€.
- λ©μμ§ ν ( Message Queue )
- μμ²μ¬νμ κ°μ§κ³ μλ νλμ λ―Έλ€μ¨μ΄λ₯Ό μ€κ°μ λκ³ λ©μμ§λ₯Ό μ λ¬νλ ν΄λΌμ΄μΈνΈκ° λ©μμ§λ₯Ό 보λ΄λ©΄ λ―Έλ€μ¨μ΄( λΈλ‘컀 )κ° μμ μμκ² λ©μμ§λ₯Ό μ μ‘ν΄μ£Όλ λ°©μ.
- λ©μμ§λ λ¬Έμμ΄, κ°μ²΄, 리μμ€ λ± λ€μν ννκ° λ μ μλ€.
- λΉλκΈ° λ°©μ : P2P λ°©μκ³Ό λ€λ₯΄κ², λ°μ΄ν°λ₯Ό μμ μμκ² λ°λ‘ 보λ΄μ§ μκ³ νμ λ£κ³ κ΄λ¦¬νκΈ° λλ¬Έμ λμ€μ μ²λ¦¬ κ°λ₯νλ€. μ’ λ μμ μ μ΄κ³ μ‘/μμ μμ νλ‘μΈμ€ μνλ₯Ό μ κ²½ μΈ νμκ° μλ€.
βοΈ Actuator bus-refresh Endpoint

- λ³κ²½λ λ°μ΄ν°λ₯Ό κ°κ³ μ€λ©΄ /busrefreshλ₯Ό νΈμΆνλ€.
- λ³κ²½λ μ¬νμ ν΄λΌμ°λ λ²μ€μκ² μλ €μ£Όκ³ ν΄λΌμ°λ λ²μ€κ° λ³κ²½λ μ¬νμ΄ μμμ κ°μ§νλ©΄ λ²μ€μ μ°κ²°λ λ λ€λ₯Έν΄λΌμ΄μΈνΈλ€μκ² λ³κ²½λ μ¬νμ μ λ°μ΄νΈ μμΌμ£Όλ λ°©μ.
AMQP ( Advanced Message Queuing Protocol ) : λ©μμ§ μ§ν₯ λ―Έλ€μ¨μ΄λ₯Ό μν κ°λ°©ν νμ€ μμ© κ³μΈ΅ νλ‘ν μ½
- λ©μμ§ μ§ν₯, νμ, λΌμ°ν , μ λ’°μ±, 보μ
- Erlang, RabbitMQμμ μ¬μ©
Kafka νλ‘μ νΈ
- Apache Software Foundationμ΄ Scalar μΈμ΄λ‘ κ°λ°ν μ€ν μμ€ λ©μμ§ λΈλ‘컀 νλ‘μ νΈ
- λΆμ°ν μ€νΈλ¦¬λ° νλ«νΌμ μ§μνλ€.
- λμ©λμ λ°μ΄ν°λ₯Ό μ²λ¦¬ κ°λ₯ν λ©μμ§ μμ€ν
π RabbitMQ vs Kafka
1. RabbitMQ

- λ©μμ§ λΈλ‘컀 μν μ νλ€.
- μ΄λΉ 20κ° μ΄μμ λ©μμ§λ₯Ό μλΉμμκ² μ λ¬ν μ μλ€.
- λ©μμ§ μ λ¬μ 보μ₯ν΄μ£Όλ©°, μμ€ν κ° λ©μμ§λ₯Ό μ λ¬ν΄μ€λ€.
- λΈλ‘컀 μ€μ¬, μλΉμ μ€μ¬μ΄λ€.
2. Kafka

- μ΄λΉ 100k μ΄μμ μ΄λ²€νΈλ₯Ό μ²λ¦¬ν μ μλ€.
- pub/sub, Topicμ λ©μμ§λ₯Ό μ λ¬νλ€.
- subscriberκ° λ°μ΄ν°λ₯Ό λ°μλμ§ λ°μ§ μμλμ§λ₯Ό μ κ²½μ°μ§ μκ³ publisherλ λ°μ΄ν°λ₯Ό 보λ΄κΈ°λ§ νλ€.
- μμ°μ μ€μ¬μ΄λ€.
3. μμ½
- RabbitMQ : μ μ λ°μ΄ν°λ₯Ό μμ νκ² μ λ¬νλ κ²μ 보μ₯μν€κ³ μ ν λ
- Kafka : λμ©λμ λ°μ΄ν°λ₯Ό λΉ λ₯Έ μκ° λ΄μ μ²λ¦¬νκ³ μ ν λ
!! μ λ΄μ©μ Dowon Lee λμ "Spring Cloudλ‘ κ°λ°νλ λ§μ΄ν¬λ‘μλΉμ€ μ ν리μΌμ΄μ (MSA)" κ°μλ₯Ό μ°Έκ³ νμ¬ μ 리ν κΈμ λλ€
Spring Cloudλ‘ κ°λ°νλ λ§μ΄ν¬λ‘μλΉμ€ μ ν리μΌμ΄μ (MSA) - μΈνλ° | κ°μ
Spring frameworkμ Spring Cloud μ νκ΅°μ μ΄μ©νμ¬ λ§μ΄ν¬λ‘μλΉμ€ μ ν리μΌμ΄μ μ κ°λ°ν΄ 보λ κ³Όμ μ λλ€. Cloud Native ApplicationμΌλ‘μ¨μ Spring Cloudλ₯Ό μ΄λ»κ² μ¬μ©νλμ§, ꡬμ±μ μ΄λ»κ² νλμ§μ λν΄
'MSA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| API Gateway κ°λ¨ μ 리 (0) | 2022.10.19 |
|---|---|
| Spring Cloud Netflix Eureka κ°λ¨ μ 리 (0) | 2022.10.14 |
| Spring Cloud κ°λ¨μ 리 (0) | 2022.10.14 |
| Anti-Fragile, Cloud Native Architecture κ°λ¨ μ 리 (0) | 2022.10.14 |