Introducción a Spring Cloud Basic Practical Combat (1) Registro y descubrimiento de servicios-Eureka

Springcloud es muy costoso de aprender y los requisitos de entrada son muy altos. Necesita tener cierta cantidad de conocimientos para comenzar. De lo contrario, realmente necesita leer la Biblia, aprender y ser paciente.

Eureka
Eureka es parte de la suite de microservicios Spring Cloud Netflix. Eureka es un módulo de registro y descubrimiento de servicios.

Eureka incluye componentes del lado del servidor y del lado del cliente. El lado del servidor, también conocido como registro de servicios, se utiliza para proporcionar registro y descubrimiento de servicios. Eureka admite la configuración de alta disponibilidad. Cuando falla un fragmento en el clúster, Eureka cambiará al modo de protección automática. Permite el descubrimiento y el registro del servicio durante el fallo del fragmento. Cuando el fragmento fallido vuelve a la normalidad, el clúster Otros fragmentos sincronizarán su estado otra vez.

Los componentes del cliente incluyen consumidores de servicios y productores de servicios. Cuando la aplicación se está ejecutando, el cliente de Eureka registra sus servicios en el registro y envía periódicamente latidos para actualizar su arrendamiento de servicios. Al mismo tiempo, puede consultar la información del servicio registrado actualmente desde el servidor y almacenarlos en caché localmente y actualizar periódicamente el estado del servicio.

Cree un registro de servicios

Primero abra Idea y cree un proyecto Maven como proyecto principal. 
Crea un nuevo modelo como servidor de Eureka.

Uno: cree un proyecto maven como proyecto principal: como se muestra a continuación:

Haga clic en Siguiente como se muestra a continuación:

Luego haga clic en Siguiente

Haga clic en Finalizar nuevamente, para que se cree el proyecto maven, como se muestra en la figura:

A continuación, cree un módulo en el proyecto springcloud-demo

Haga clic en Siguiente, tenga en cuenta que Artifact no se puede mezclar con mayúsculas y minúsculas, solo minúsculas

Haga clic en siguiente, luego haga clic en finalizar, el archivo pom.xml generado por el módulo creado es el siguiente:

<?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>
    <!--springboot版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.eureka.demo</groupId>
    <artifactId>eureka-server-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-server-demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <!--jdk1.8-->
        <java.version>1.8</java.version>
        <!--springcloud对应版本-->
        <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <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>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

A continuación, antes de iniciar la clase EurakeApplication, agregue @EnableEurekaServer.

package com.eureka.demo.eurekaserverdemo;

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

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerDemoApplication {

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

}

Declare el número de puerto en application.properties. Usé 9002 como el número de puerto aquí. Debe declarar que es un servidor Eureka declarando eureka.client.register-with-eureka = false y eureka.client.fetch-registry = falso. No es un cliente.

#端口号
server.port=9002 
# 实例地址:localhost 127.0.0.1
eureka.instance.hostname=localhost
# 表明是一个server
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

Ejecute el proyecto nuevamente, visite http: // localhost: 9002 y aparecerá la página que se muestra a continuación. 

Cuando no hay servicio registrado, no hay aplicación disponible, no se encuentra servicio, como lo indica el círculo rojo en la figura.

El centro de registro está configurado, a continuación

Proveedor de servicios de construcción

Los pasos generales de construcción son similares a los anteriores, pero al elegir el paquete jar que se va a importar, debe elegir Eureka Discovery. 

Crear un módulo en springcloudd-emo

Al hacer clic en siguiente para seleccionar el paquete jar que se va a importar, debe seleccionar Eureka Discovery. Como se muestra abajo:


El archivo pom del proyecto completado:

<?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.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.eureka.provider</groupId>
    <artifactId>eureka-provider</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-provider</name>
    <description>Demo project for Spring Boot</description>
    <packaging>jar</packaging>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
    </properties>

    <dependencies>
        <!--eureka-client版本-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入spring-web依赖,这样RestController等几个注解才能生效-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <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>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

Declare el número de puerto y alguna configuración en application.properties.

#端口号
server.port=9003
# 将提供者注册到eureka注册中心中
eureka.client.service-url.defaultZone=http://localhost:9002/eureka/
spring.application.name=welcome
# some.words这里暂时不支持中文汉字
some.words=Welcome to Spring Cloud there is not support chinese words now!

Inicie el módulo de eureka-provider, ingrese a la página: http: // localhost: 9003 / welcome? Name = zhangsan

La siguiente interfaz aparece en el navegador y usted mismo puede definir el valor después del nombre. 

Regresemos al servidor Eureka en http: // localhost: 9002 / port, y estará el servicio que acabamos de registrar. 

La oración roja indica que Eureka ha entrado en un modo de autoprotección. El modo de protección se utiliza principalmente para la protección en una partición de red entre un grupo de clientes y Eureka Server. Una vez en el modo protegido, Eureka Server intentará proteger la información en su registro de servicios y ya no eliminará los datos en el registro de servicios (es decir, no cerrará la sesión de ningún microservicio).

Hasta ahora: el centro de registro está escrito, la dirección de descarga del código:

Entonces sigue aprendiendo ... Vamos ...

Supongo que te gusta

Origin blog.csdn.net/qq_30764991/article/details/100537932
Recomendado
Clasificación