Resumen de Spring Cloud (3): introducción y demostración de Spring Cloud Eureka

Enlace original

1 Introducción a las funciones del módulo de microservicio

1.1 Gobernanza del servicio

La gobernanza de servicios es el módulo más central y básico de la arquitectura de microservicios. Se utiliza principalmente para realizar el registro y descubrimiento automático de cada instancia de microservicio.
Spring Cloud Eureka es parte de la suite de microservicios Spring Cloud Netflix, que se basa en Netflix Eureka para el empaquetado secundario. Principalmente responsable de completar la función de gobierno del servicio en la arquitectura de microservicios.

1.2 Registro de servicio

En el marco de gobernanza de servicios, generalmente se crea un registro y cada unidad de servicio registra sus propios servicios en el registro, incluida información adicional como el host del servicio y el número de puerto, el número de versión del servicio y el protocolo de comunicación. El centro de registro organiza la lista de servicios de acuerdo con el nombre del servicio. Al mismo tiempo, debe controlar si los servicios de la lista están disponibles mediante la detección de latidos. Si no está disponible, debe eliminarse del servicio. lista para lograr el efecto de los servicios de resolución de problemas.

1.3 Descubrimiento de servicios

Bajo el marco de gobierno de servicios, las llamadas entre servicios ya no se realizan especificando direcciones de instancia específicas, sino iniciando llamadas de solicitud por nombres de servicio. La persona que llama al servicio obtiene la lista de instancias de servicio de la lista de servicios del registro de servicios a través del nombre del servicio y saca una ubicación de la instancia de servicio a través de la estrategia de equilibrio de carga especificada para realizar la llamada de servicio.

2 Versión de demostración

2.1 Eureka Server crea un centro de registro de servicios

La estructura del proyecto es la siguiente

/src
  /main
    /java
      /com/lerr/baseeureka
        BaseEurekaApplication.java
    /resources
      application.properties
pom.xml

2.1.1 Tome Maven como ejemplo para configurar las dependencias del proyecto

  • pom.xml (pom.xml introduce dependencias relacionadas)
    <!-- 使用阿里云配置,下载速度可靠 -->
    <repositories>
        <repository>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>

    <!-- 继承 spring-boot-starter-parent 一些已有的配置  -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
    </properties>

    <dependencies>
        <!-- 引入 eureka-server表明当前工程是作为服务注册中心 -->
        <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>

2.1.2 La clase de inicio principal, agregue la anotación @EnableEurekaServer y habilite la capacidad del servidor

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

@EnableEurekaServer //启动一个服务注册中心,供其他应用进行对话
@SpringBootApplication
public class BaseEurekaApplication {

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

}

2.1.3 Configuración del archivo de configuración

Dado que es un centro de registro de servicios, no es necesario que se registre usted mismo, eureka.client.register-with-eurekaya que es por defecto true, por lo que debe prestar especial atención a la declaración comofalse

  • application.properties
server.port=1111

eureka.instance.hostname=localhost
# 不向注册中心注册自己
eureka.client.register-with-eureka=false
# 注册中心的职责是维护实例,不需要去检索服务
eureka.client.fetch-registry=false

2.1.4 Iniciar el proyecto y acceder

Visite http: // localhost: 1111 /

 

Página de inicio de Eureka

 

2.2 Los módulos de microservicio van al registro para registrarse

La estructura del proyecto es la siguiente

/src
  /main
    /java
      /com/lerr/basemsone
        BaseMsOneApplication.java
    /resources
      application.properties
      bootstrap.properties
pom.xml

2.2.1 Configuración dependiente, pom.xml

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

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
    </properties>

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

        <!-- 如果是具体业务模块,引入eureka-client依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</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>

2.2.2 Configuración de inicio

@EnableDiscoveryClient  //表明去注册中心注册  
@SpringBootApplication
public class BaseMsOneApplication {

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

}

2.2.3 Archivo de configuración

  • application.properties
server.port=8180
  • bootstrap.properties
# 设定服务名称
spring.application.name=ms-one
# 服务注册中心的地址,告诉应用去这个地方注册
eureka.client.service-url.defaultZone=http://localhost:1111/eureka/

3 Inicie el registro de servicios y los microservicios

3.1 Captura de pantalla de la página del centro de registro del servicio

 

3.2 Análisis de registros

Puede mirar el registro del módulo de microservicio, lo que significa que va al centro de servicio para registrarse

2018-08-20 23:17:05.257  INFO 21816 --- [           main] com.netflix.discovery.DiscoveryClient    : Discovery Client initialized at timestamp 1534778225257 with initial instances count: 0
2018-08-20 23:17:05.261  INFO 21816 --- [           main] o.s.c.n.e.s.EurekaServiceRegistry        : Registering application ms-one with eureka with status UP
2018-08-20 23:17:05.262  INFO 21816 --- [           main] com.netflix.discovery.DiscoveryClient    : Saw local status change event StatusChangeEvent [timestamp=1534778225262, current=UP, previous=STARTING]
2018-08-20 23:17:05.264  INFO 21816 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_MS-ONE/F0R6S7J.SU.intra.cpic.com.cn:ms-one:8180: registering service...

Al mismo tiempo, mire el registro del centro de registro del servicio. Cuando se registre una aplicación, se generará el siguiente registro

2018-08-20 23:17:05.395  INFO 24168 --- [nio-1111-exec-9] c.n.e.registry.AbstractInstanceRegistry  : Registered instance MS-ONE/F0R6S7J.SU.intra.cpic.com.cn:ms-one:8180 with status UP (replication=false)


Autor: liuyangcc
enlace: https: //www.jianshu.com/p/b3014de7c312
Fuente: Los libros de Jane
tienen derechos de autor del autor. Para reimpresiones comerciales, comuníquese con el autor para obtener autorización y para reimpresiones no comerciales, indique la fuente.

Supongo que te gusta

Origin blog.csdn.net/lsx2017/article/details/114005132
Recomendado
Clasificación