1.Spring Cloud 구축 마이크로 서비스 구조:서비스 등록 과 발견(Eureka,Consul)

16964 단어 JavaSpringSpringCloud
1.스프링 클 라 우 드 유레카
스프링 클 라 우 드 유레카 는 스프링 클 라 우 드 넷 플 릭 스 프로젝트 하의 서비스 관리 모듈 이다.한편,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 창 을 열 수 있 습 니 다

좋은 웹페이지 즐겨찾기