Dos, primavera nube de Alibaba-Nacos- registro del servicio y el descubrimiento

I. Visión general

registro de servicios: las instancias de servicio de almacenamiento y base de datos de servicio de la política de equilibrio de carga

       En este documento para demostrar el registro del servicio Nacos proceso de descubrimiento y en el uso de proyectos de la nube a través de la primavera, caso cuadro de la ilustración muestra el flujo principal de papel:
flujo esquemático

En segundo lugar, el proveedor de servicios (NACOS proveedor)

Proveedor de servicios: significa la provisión de lado de aplicación reutilizables y servicios exigibles

2.1, una nueva primavera proyectos de arranque, pom.xml de la siguiente manera:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.zhoumo</groupId>
    <artifactId>nacos-provider</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
        <spring-cloud-alibaba.verion>0.9.0.RELEASE</spring-cloud-alibaba.verion>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.verion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>


    <dependencies>
        <!-- Spring Boot Start -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Spring Boot End -->

        <!-- Nacos Start -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- Nacos End -->
    </dependencies>

</project>

2.2, el archivo de configuración de la siguiente manera (application.yml):

server:
  port: 8070

spring:
  # 配置服务名称
  application:
    name: service-provider
  # 配置 Nacos Server的地址
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.145.129:8848

2.3, iniciar las clases de la siguiente manera (Aplicación):

        Por anotada @EnableDiscoveryClientregistro de servicio abierta Nacos y el descubrimiento:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {

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

}

2,4, de la siguiente manera la parte delantera del controlador (Controller):

        Escribir una RestControllerAPI REST proporcionada para la prueba:

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/provider")
public class ProviderController {

    @RequestMapping("/hello")
    public String Hello(){
        return "Hello, This is Nacos provider!";
    }
}

2.5, iniciar el proyecto para verificar el registro con éxito:

        Acceso nacos Server a través de un navegador: http: //192.168.145.129: 8848 / nacos; a continuación, haga clic en la lista de servicios, se puede ver que el servicio ha sido registrado en el servidor nacos:
Aquí Insertar imagen Descripción

2.6 navegador a la interfaz de prueba de acceso:

Aquí Insertar imagen Descripción

En tercer lugar, el consumo de servicios (NACOS de consumo)

consumidor de servicios: significa que el partido va a iniciar una solicitud de llamada de servicio

        Debido a que es el proyecto de Primavera de arranque, por lo que aquí en el consumidor final RestTemplate vienen a 服务提供者llamar.

3.1, una nueva primavera proyectos de arranque, pom.xml de la siguiente manera:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.zhoumo</groupId>
    <artifactId>nacos-consumer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
        <spring-cloud-alibaba.verion>0.9.0.RELEASE</spring-cloud-alibaba.verion>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.verion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>


    <dependencies>
        <!-- Spring Boot Start -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Spring Boot End -->

        <!-- Nacos Start -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- Nacos End -->
    </dependencies>

</project>

3.2, el archivo de configuración de la siguiente manera (application.yml):

server:
  port: 8071

spring:
  # 配置服务名称
  application:
    name: service-consumer
  # 配置 Nacos Server的地址
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.145.129:8848

3.3, iniciar las clases de la siguiente manera (Aplicación):

        Por anotada @EnableDiscoveryClientregistro de servicio abierta Nacos y el descubrimiento:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConsumerApplication {

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

3,4, clase de configuración de la siguiente manera (configuración):

RestTemplate es proporcionada por el cliente primavera para acceder a los servicios de descanso que simplifica la comunicación con los servicios HTTP, unificado estándar REST y encapsulados HTTP enlace, simplemente escribe la URL entrante y el valor de retorno puede ser. HttpClient utilizan comúnmente, es un RestTemplate más elegantes servicios RESTful de llamadas en comparación con el método anterior.

        Inyección clase de configuración RestTemplate , se puede utilizar en el proyecto:

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfigure {

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

}

3,5, de la siguiente manera la parte delantera del controlador (Controller):

        En el controlador, por RestTemplate para acceder al proveedor de servicios, utilizando el nombre del servicio y el proveedor de servicios registrados en el servidor de acceso Nacos, se puede comprobar si los consumidores pueden encontrar un proveedor de servicios a nombre de servicio por Nacos servidor.

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
@RequestMapping("/consumer")
public class ConsumerController {

    private final RestTemplate restTemplate;

    @Autowired
    public ConsumerController(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @RequestMapping("/hello")
    public String Hello(){
        // 使用服务名称调用服务提供者
        return restTemplate.getForObject("http://service-provider/provider/hello", String.class);
    }
}

3.6 Elementos de inicio verificar el registro con éxito:

        Acceso nacos Server a través de un navegador: http: //192.168.145.129: 8848 / nacos; a continuación, haga clic en la lista de servicios, se puede ver que el servicio ha sido registrado en el servidor nacos:
Aquí Insertar imagen Descripción

3.7 navegador a la interfaz de prueba de acceso:

Aquí Insertar imagen Descripción

IV Resumen

        Al escribir proveedor de servicios (proveedor) y el módulo de servicios al consumidor (consumidor), y registrarlo en el servicio Nacos Server, utilizado por última vez en los consumidores de servicios RestTemplate (de consumo) para llamar al proveedor de servicios (proveedor) este proceso caso, para comprender mejor registro Nacos y el descubrimiento, así como su uso en el proyecto.


Publicado 47 artículos originales · elogios ganado 16 · Vistas a 70000 +

Supongo que te gusta

Origin blog.csdn.net/zorro_jin/article/details/105197250
Recomendado
Clasificación