이전 포스팅에서 Eureka Server를 구축했으니, 서비스 디스커버리에 등록할 클라이언트를 구현하는 방법을 정리하고자 한다.
- Eureka Server 구축 : https://minnseong.tistory.com/13
Eureka Client 구축
Gradle 의존성 추가
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
Euraka Client 활성화 (XXXApplication.java)
@SpringBootApplication
@EnableDiscoveryClient
public class XXXApplication {
public static void main(String[] args) {
SpringApplication.run(XXXApplication.class, args);
}
}
- 해당 서버가 Eureka Client 역할을 할 수 있도록 @EnableDiscoveryClient 추가
Euraka Server 설정 파일 (application.yml)
server:
port: 0
spring:
application:
name: user-service
eureka:
instance:
instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}}
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://127.0.0.1:8761/eureka
- server.port : 0 (Random Port)
- 애플리케이션의 서버 포트를 설정하는 속성
- '0'으로 설정하면 임의의 Port 번호로 할당되어, 애플리케이션을 실행할 때마다 Port를 지정하지 않아도 자동으로 사용가능한 임의의 포트로 설정된다.
- 애플리케이션 실행시, 랜던 포트를 확인할 수 있다.
- spring.application.name
- MSA에서 해당 서비스를 구별할 수 있는 고유한 ID
- eureka.client
- register-with-eureka : 현재 애플리케이션을 Eureka Server에 등록하지에 대한 여부 (true)
- fetch-registry : Eureka Server로 부터 인스턴스들의 정보를 주기적으로 가져올 것인지에 대한 속성 (true)
- service-url.defaultZone : Eureka Client가 Eureka Server에 연결하기 위한 URL 설정, defaultZone은 기본적으로 용되는 Eureka Server의 URL를 나타낸다.
- instance.instance-id : 애플리케이션의 인스턴스 ID 설정
- 만약 instance-id를 설정하지 않는 경우
- Random Port를 사용하여 여러 애플리케이션을 실행시키면, 예시(1)와 같이Eureka Server에 마치 하나의 애플리케이션만 등록된 것 같이 보인다.
- Eureka Server는 "address:name:port" 로 등록되기 때문에, 동적으로 할당된 Port 번호가 아닌 application.yml에 등록된 0이 등록된다.
- instance-id를 설정할 경우
- 예시(2)와 같이, Random Port를 사용하는 2개의 애플리케이션이 Eureka Server에 잘 등록되는 것을 확인할 수 있다.
- 만약 instance-id를 설정하지 않는 경우
Euraka Client 실행
- Eureka Server를 먼저 실행시킨 후,
- Eureka Client 애플리케이션을 실행시키면, Eureka Server에 등록되는 것을 확인할 수 있다.
MSA 공부
(1) Eureka Server 구성
(2) Eureka Client 구성
(3) Client Side Load Balancer & API Gateway 개념 정리
(4) Spring Cloud Gateway 구현
참고 강의 : https://www.inflearn.com/course/스프링-클라우드-마이크로서비스/dashboard
'개발 > Spring Cloud' 카테고리의 다른 글
[Spring Cloud] Config Server 설정 정보의 암호화 처리 (0) | 2023.06.20 |
---|---|
[Spring Cloud] Config Server 구축하기 (busrefresh 하기) (1) | 2023.06.19 |
[Spring Cloud] Spring Cloud Gateway 구축하기 (0) | 2023.06.12 |
[Spring Cloud] Client Side Load Balancer & API Gateway 개념 정리 (0) | 2023.06.11 |
[Spring Cloud] Eureka Server 구축하기 (0) | 2023.06.05 |