-
Eureka 서버 구축스프링/스프링 클라우드 MSA 2024. 8. 5. 13:57
이전 포스팅들에서는 스프링 서버에서 공통으로 사용하는 Config Repository와 Config Server에 대해 설명했다.
이번 포스팅에는 각각의 서버가 얼마나 켜져있는지, 어떤 상황인지를 모니터링할 수 있는 Eureka 서버에 대해서 알아볼 예정이다.
Eureka 서버의 역할
- MSA를 구성하는 마이크로 서비스들을 모니터링하는 역할
- 스프링 클라우드 Gateway에게 마이크로 서비스들을 알려주는 역할
- 부하에 따라 자동으로 sclae out 되어도 Gateway에게 그 목록을 알려주는 역할
프로젝트 생성시 필수 의존성 - Eureka Server, Spring Security
Main Class
@SpringBootApplication @EnableEurekaServer // Eureka Server를 위한 어노테이션 public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
프로젝트 의존성이 전부 주입되었으면, 메인 클래스에 @EnableEurekaServer 어노테이션을 붙여서 Eureka Server로 동작할 수 있도록 한다.
application.properties
server.port=8761 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false
application.properties에도 위와 같이 설정을 해준다.
보통 port 번호는 8761번 port를 사용한다. 아래의 설정은 Eureka Server가 자기 자신을 등록하는 것을 방지해주는 설정과 client에 대한 fetch registry의 false에 대한 설정이다.
SecurityConfig
@Configuration @EnableWebSecurity public class SecurityConfig { @Bean // 비밀번호 암호화 public BCryptPasswordEncoder bCryptPasswordEncoder() { return new BCryptPasswordEncoder(); } @Bean // http - security 관련 설정들 public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf((auth) -> auth.disable()); http .authorizeHttpRequests((auth) -> auth.anyRequest().authenticated()); http .httpBasic(Customizer.withDefaults()); return http.build(); } @Bean // 서버 접속은 간단하게 하기 위해 인메모리로 저장 public UserDetailsService userDetailsService() { UserDetails user1 = User.builder() .username("admin") .password(bCryptPasswordEncoder().encode("password")) .roles("ADMIN") .build(); return new InMemoryUserDetailsManager(user1); } }
위의 코드는 Eureka Server의 보안을 위한 SecurityConfig 코드이다.
스프링을 실행하고 8761에 접속해서 admin, password를 입력하면 위와 같이 Eureka Server가 뜬다. 아직 스프링 어플리케이션이 없지만, Eureka Server의 대시보드를 띄웠고, 다음 포스팅에서 Eureka Server에 등록할 클라이언트를 공부하도록 하겠다.
'스프링 > 스프링 클라우드 MSA' 카테고리의 다른 글
스프링 클라우드 게이트웨이(SCG) (0) 2024.08.05 Eureka Client 등록 설정 (0) 2024.08.05 Config 클라이언트 구축 (0) 2024.08.04 Config Server 설정 (0) 2024.08.04 Config 깃허브 Repository 구축 (0) 2024.08.04