>  기사  >  Java  >  Java로 작성된 마이크로서비스 서비스 등록 센터 및 서비스 검색 도구

Java로 작성된 마이크로서비스 서비스 등록 센터 및 서비스 검색 도구

王林
王林원래의
2023-08-09 11:12:211307검색

Java로 작성된 마이크로서비스 서비스 등록 센터 및 서비스 검색 도구

Java로 작성된 마이크로서비스 서비스 등록 센터 및 서비스 검색 도구

소개

마이크로서비스 아키텍처의 인기로 인해 서비스 등록 및 검색이 중요한 구성 요소가 되었습니다. 마이크로서비스 아키텍처에서 서비스는 등록 센터에 적극적으로 등록하고 등록 센터를 통해 서비스를 검색하고 연결합니다. 이 기사에서는 Java를 사용하여 간단한 마이크로서비스 서비스 등록 센터 및 서비스 검색 도구를 작성하는 방법을 소개합니다.

1. 마이크로서비스 서비스 등록 센터

마이크로서비스 서비스 등록 센터는 각 서비스의 등록 및 검색을 관리하는 데 사용되는 중앙 집중식 구성 요소입니다. 이 기사에서는 Spring Boot와 Netflix Eureka를 사용하여 서비스 레지스트리를 구현합니다.

1.1 Spring Boot 프로젝트 생성

먼저 Spring Boot 기반의 프로젝트를 생성해야 합니다. Eclipse 및 IntelliJ IDEA와 같은 일반적인 Java 개발 도구를 사용하여 프로젝트를 생성하고 pom.xml 파일에 다음 종속성을 추가할 수 있습니다. pom.xml文件中:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
</dependencies>

1.2 配置Eureka服务器

application.properties文件中,添加以下配置:

spring.application.name=eureka-server
server.port=8761

eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
eureka.server.enable-self-preservation=false
eureka.server.eviction-interval-timer-in-ms=60000

1.3 创建Eureka服务器

接下来,创建一个EurekaServerApplication类,并使用@EnableEurekaServer注解来启用Eureka服务器。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}

现在,启动该应用程序,Eureka服务器将在http://localhost:8761上运行。

2. 微服务服务发现工具

微服务服务发现工具用于从服务注册中心中发现可用的服务实例。在本文中,我们将使用Netflix Ribbon来实现服务的发现。

2.1 创建一个Spring Boot项目

同样地,创建一个基于Spring Boot的项目,并添加以下依赖项到pom.xml文件中:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>
</dependencies>

2.2 配置Eureka客户端

application.properties文件中,添加以下配置:

spring.application.name=service-discovery-client
server.port=8080

eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

2.3 创建服务消费者

接下来,创建一个HelloController类,并使用Netflix Ribbon来消费服务。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Autowired
    private DiscoveryClient discoveryClient;

    @GetMapping("/hello")
    public String hello() {
        List<ServiceInstance> instances = discoveryClient.getInstances("hello-service");
        if (instances != null && !instances.isEmpty()) {
            ServiceInstance serviceInstance = instances.get(0);
            String url = serviceInstance.getUri().toString();
            RestTemplate restTemplate = new RestTemplate();
            return restTemplate.getForObject(url + "/hello", String.class);
        }
        return "No service available.";
    }
}

2.4 运行服务消费者

最后,启动该应用程序,服务消费者将在http://localhost:8080上运行。通过访问http://localhost:8080/hello,它将消费名为hello-service的微服务的/hellorrreee

1.2 >application.properties 파일에 다음 구성을 추가합니다.

rrreee

1.3 Eureka Server🎜🎜 만들기다음으로 EurekaServerApplication 클래스를 만들고 @EnableEurekaServer 주석을 사용합니다. 유레카 서버를 활성화합니다. 🎜rrreee🎜 이제 애플리케이션을 실행하면 http://localhost:8761에서 Eureka 서버가 실행됩니다. 🎜🎜2. 마이크로서비스 서비스 검색 도구🎜🎜마이크로서비스 서비스 검색 도구는 서비스 레지스트리에서 사용 가능한 서비스 인스턴스를 검색하는 데 사용됩니다. 이 기사에서는 Netflix 리본을 사용하여 서비스 검색을 구현합니다. 🎜🎜2.1 Spring Boot 프로젝트 만들기🎜🎜마찬가지로 Spring Boot를 기반으로 프로젝트를 만들고 pom.xml 파일에 다음 종속성을 추가합니다. 🎜rrreee🎜2.2 Eureka 클라이언트 구성🎜🎜 application.properties 파일에 다음 구성을 추가합니다. 🎜rrreee🎜2.3 서비스 소비자 만들기 🎜🎜다음으로 HelloController 클래스를 만들고 Netflix 리본을 사용하여 서비스를 사용합니다. 🎜rrreee🎜2.4 서비스 소비자 실행 🎜🎜마지막으로 애플리케이션을 시작하면 서비스 소비자가 http://localhost:8080에서 실행됩니다. http://localhost:8080/hello에 액세스하면 hello-service라는 마이크로서비스의 /hello 인터페이스가 사용됩니다. 🎜🎜결론🎜🎜이 기사에서는 Java를 사용하여 Spring Boot 및 Netflix Eureka 기반의 마이크로서비스 서비스 레지스트리 및 서비스 검색 도구를 작성하는 방법을 소개합니다. 이러한 도구를 사용하면 마이크로서비스 아키텍처에서 서비스 등록 및 검색을 쉽게 구현할 수 있습니다. 이 기사가 도움이 되기를 바랍니다! 🎜

위 내용은 Java로 작성된 마이크로서비스 서비스 등록 센터 및 서비스 검색 도구의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.