일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- HashMap
- Set
- 원격
- backtracking
- emqx
- #MSA
- db utf8
- CORS policy: No 'Access-Control-Allow-Origin'
- message protocol
- mosquitto
- mqtt
- #spring boot
- xrdp
- com.netflix.zuul.exception.ZuulException
- TreeMap
- mariadb 한국어
- #actuator
- Hystrix Read time out
- ArrayList
- mysql 다국어
- cors
- mysql 한국어
- com.netflix.zuul.exception.ZuulException: Hystrix Readed time out
- java collection
- IOT
- mariadb 다국어
- Access-Control-Allow-Origin
- mstsc
- #spring boot admin
- 크로스도메인
- Today
- Total
miin29na
[spring cloud] eureka server(설정 + replication, 이중화) 본문
[spring cloud] eureka server(설정 + replication, 이중화)
miin29na 2018. 11. 26. 19:15MSA 를 구성하기 위해, config-service 를 구성 후에 이번 포스팅에서는, discovery service를 구성한다. Config-service 는 이전글을 참조한다.
Spring Cloud Discovery Server (Eureka Server) 는 Micro service 들을 감시하고 관리하는 서비스이다.
이전 글에서, "Config-service, discovery-service, proxy-service, A-service, B-service 5개의 서버가 물리적으로 다른 서버에서 수행된다. "
discovery-service : Eureka Server
proxy-service, A-service, B-servie : Eureka Client
-Micro service 들의 목록을 관리
-service 가 새롭게 투입되면 감지하여 목록에 자동으로 추가, 종료시에 자동으로 목록에서 삭제한다.
-API 호출 하는 Side 에서 주소들을 모르고 서비스 이름만으로 호출 가능하게 한다.
-service instance 추가/제거 시 별도의 설정 작업 없이 가능하게 한다.
-Eureka clientr가 Eureka SErver 에게 주기적으로 통신(default 30s)
-Eureka cleint 는 Eureka Server 로부터 Registry 정보를 읽어와 로컬에 캐시한다.
이번엔 Eureka server, client 설정과 함께 Eureka server 이중화까지 적용한다.
Eureka Server 는 자동으로 replication 을 지원한다.
기본 설정
1. Eureka Server 설정
1.1 pom.xml 설정
1 2 3 4 5 | <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> |
1.2 SpringBootApplication 설정
@EnableEurekaServer annotaion 추가
1 2 3 4 5 6 7 8 9 10 | @SpringBootApplication @EnableEurekaServer public class DiscoveryApplication { public static void main(String[] args) { new SpringApplicationBuilder(DiscoveryApplication.class).run(args); } } | cs |
1.3 bootstap.yml 설정
discovery-service 1 (IP : 1.1.1.1)
1 2 3 4 5 6 7 8 9 10 11 1 13 14 | server: port: 8061 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ | cs |
2. Eureka Client 설정
2.1 pom.xml 설정
1 2 3 4 5 | <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> |
2.2 SpringBootApplication 설정
@EnableDiscoveryClient annotaion 추가
1 2 3 4 5 6 7 8 9 10 | @SpringBootApplication @EnableDiscoveryClient public class DiscoveryApplication { public static void main(String[] args) { new SpringApplicationBuilder(DiscoveryApplication.class).run(args); } } | cs |
2.3 bootstrap.yml 설정 추가
1 2 3 4 5 6 7 8 | server: port: 8060 eureka: client: serviceUrl: defaultZone: http://1.1.1.1:8061/eureka/ | cs |
Eureka Server 이중화
- discovery service 가 다운되는 경우를 고려해 replication 하는 server 를 1대 추가 한다. (Fail over)
- 기본 설정 후에 적용 한다.
discovery-service1, discovery-service2 : Eureka Server
proxy-service, A-service, B-servie : Eureka Client
1. Eureka Server 설정
1.1 bootstap.yml 설정 추가
Peer 가 되는 IP 와 Port 정보를 defaultZone 을 수정
discovery-service 1 (IP : 1.1.1.1)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | server: port: 8061 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: # defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ defaultZone: http://2.2.2.2:${server.port}/eureka/ | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | server: port: 8061 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: # defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ defaultZone: http://1.1.1.1:${server.port}/eureka/ | cs |
2. Eureka Client 설정
- proxy-service, A-service, B-servie 모두 추가 한다.
2.1 bootstrap.yml 설정 추가
1 2 3 4 5 6 7 8 | server: port: 8060 eureka: client: serviceUrl: defaultZone: http://1.1.1.1:8061/eureka/, http://2.2.2.2:8061/eureka/ | cs |
Eureka Server 는 eureka dashboard 를 제공한다.
web 에서 http://1.1.1.1:8061/ 과 http://2.2.2.:8061 로 접속하면, Eureka client 들을 replication 해서 동일하게 가지고 있는것을 확인할 수 있다.