And Brain said,

Netflix의 Eureka, Service Discovery의 시작 본문

IT/Java & Kotlin & Spring boot

Netflix의 Eureka, Service Discovery의 시작

The Man 2022. 11. 13. 13:03
반응형



시작하기에 앞서 Service Discovery에 대해 설명하겠다.

마이크로서비스 아키텍쳐에서는 분산된 마이크로 서비스들이 하나하나 원격으로 호출되어 전체를 이룬다.

이때 API Gateway에서 서비스들을 효율적으로 호출할 수 있도록 도와주는 것을 Service Discovery(발견)라고 한다.

자, 이제 Spring Netflix Eureka를 통해 Netflix OSS에서 어떻게 Eureka를 외치며 서비스를 발견하는지 알아보자.


sts를 사용하여 새로운 Spring Starter Project를 만든다.


이렇게 적어주고, Next를 누른 뒤 추가적인 의존성 주입이 필요하진 않아서 Finish를 눌러 프로젝트를 생성하자.

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.6.RELEASE</version>
		<relativePath />
	</parent>
	<groupId>com.spring.cloud.eureka</groupId>
	<artifactId>eureka</artifactId>
	<version>1.0.0</version>
	<name>eureka</name>
	<description>Eureka Server for MSA</description>
	<properties>
		<java.version>1.8</java.version>
		<spring.cloud.version>2.2.5.RELEASE</spring.cloud.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
			<version>${spring.cloud.version}</version>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>


pom.xml

spring-cloud-starter-netflix-eureka-server 의존성 주입

.

EurekaApplication.java에 @EnableEurekaServer 어노테이션 추가

application.properties라면 바꿔준다

 

application.yml 파일을 작성해준다.

EurekaApplication을 실행시켜주고

 


localhost:8761로 들어가면 Eureka Server를 확인할 수 있다.

이제 마이크로서비스들을 Eureka Client로 상태 정보를 전송하고 Eureka Server는 이를 발견하여 레지스트리에 등록한다.

이것이 서비스 디스커버리 패턴이다.


Thanks for watching, Have a nice day.

 

반응형
Comments