1.Spring Cloud 구축 마이크로 서비스 구조:서비스 등록 과 발견(Eureka,Consul)
16964 단어 JavaSpringSpringCloud
스프링 클 라 우 드 유레카 는 스프링 클 라 우 드 넷 플 릭 스 프로젝트 하의 서비스 관리 모듈 이다.한편,Spring Cloud Netflix 프로젝트 는 Spring Cloud 의 서브 프로젝트 중 하나 로 넷 플 릭 스 회사 의 일련의 오픈 소스 제품 에 대한 포장 을 주요 내용 으로 하 며 Spring Boot 응용 에 자체 설정 한 Netflix OSS 통합 을 제공 합 니 다.간단 한 주 해 를 통 해 개발 자 는 응용 에서 자주 사용 하 는 모듈 을 신속하게 설정 하고 커 다란 분포 식 시스템 을 구축 할 수 있 습 니 다.이 모듈 은 서비스 발견(Eureka),차단기(Hystrix),스마트 경로(Zuul),클 라 이언 트 부하 균형(Ribbon)등 을 포함한다.
1.'서비스 등록 센터'만 들 기-
의존 도 를 높이다
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>1.5.4.RELEASEversion>
<relativePath/>
parent>
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-eureka-serverartifactId>
dependency>
dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-dependenciesartifactId>
<version>Dalston.SR1version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
비교적 번 거 로 워 서 아이디어 로 직접 추가 할 수 있 습 니 다.
2.주 해 를 통 해 서비스 시작
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
3.프로필 수정
server.port=110
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
4.'서비스 제공 자'만 들 기(client)
의존 도 를 높이다
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>1.5.4.RELEASEversion>
<relativePath/>
parent>
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-eurekaartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-dependenciesartifactId>
<version>Dalston.SR1version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
설정 추가
spring.application.name=eureka-client
server.port=2001
eureka.client.serviceUrl.defaultZone=http://localhost:110/eureka/
애플 리 케 이 션 에 주석 추가
@SpringBootApplication
@EnableDiscoveryClient
public class ServiceConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceConsumerApplication.class, args);
}
@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
// Do any additional configuration here
return builder.build();
}
}
컨트롤 러 에서 사용
@RestController
public class DcController {
@Autowired
DiscoveryClient discoveryClient;
@GetMapping("/dc")
public String dc() {
String services = "Services: " + discoveryClient.getServices();
System.out.println(services);
return services;
}
}
연결 열기http://localhost:110
5.eureka 소비자 만 들 기
eureka 소비자 와 공급 자 구조 설정 이 같 습 니 다.
@RestController
public class IndexController {
@Autowired
LoadBalancerClient loadBalancerClient;
@Autowired
RestTemplate restTemplate;
@GetMapping("/consumer")
public String dc() {
ServiceInstance serviceInstance = loadBalancerClient.choose("eureka-client");
String url = "http://" + serviceInstance.getHost() + ":" + serviceInstance.getPort() + "/dc";
System.out.println(url);
ServiceInstance instance = loadBalancerClient.choose("eureka-consumer");
System.out.println(instance.getHost()+":"+instance.getPort());
return restTemplate.getForObject(url, String.class);
}
}
2.스프링 클 라 우 드 컨설팅
Spring Cloud Consul Consul 。Consul
, , , 。
:
Key/Value
1.의존 도 추가
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-consul-configartifactId>
dependency>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-consul-discoveryartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-actuatorartifactId>
dependency>
dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-dependenciesartifactId>
<version>${spring-cloud.version}version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
2,properties 추가 설정
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
3.서비스 시작
로 컬 consul 서 비 스 를 열 고 홈 페이지 에 가서 서버 소프트웨어 를 다운로드 해 야 합 니 다.
https://www.consul.io/
홈 페이지 에서 해당 버 전의 서버 소프트웨어 를 다운로드 하면 Windows 시스템 은 현재 소프트웨어 디 렉 터 리 아래 cmd 를 열 고 consul 에이전트-dev 를 입력 하면 서 비 스 를 시작 할 수 있 습 니 다.
4、spring boot 프로젝트 오픈
입력http://localhost://8500UI 창 을 열 수 있 습 니 다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.