Registro del servicio Eureka y descubrimiento de notas de springcloud (2)

1. ¿Cuál es el mecanismo de autoprotección de eureka?

Eureka tiene un mecanismo de autoprotección. Qué significa, es decir, cuando el registro de eureka detecta que un servicio no está disponible, no cancelará inmediatamente el servicio. Tendrá un proceso de espera. El tiempo es de unos 90 segundos, dentro de 90 segundos., Eureka aún puede proteger la información básica del servicio para que no se pierda. El propósito de esto es que es posible que el motivo real del bloqueo del servicio sea una falla de la red, como un corte de energía. El microservicio en sí está en buen estado y no se debe cerrar la sesión.

El mecanismo de autoprotección es una medida de seguridad para hacer frente a las anomalías de la red, lo que hace que el clúster eureka sea más robusto y estable.

Además, en springcloud, se puede usar el eureka.server.enable-self-preservation=fasemecanismo de autoprotección para apagar eureka, pero no se recomienda.

2. Pasos de demostración

1. Presentar la biblioteca

<!-- eureka -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <version>2.2.5.RELEASE</version>
</dependency>
<!-- 完善eureka监控信息 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

configuración application.yaml

server:
  port: 8001

mybatis:
  type-aliases-package: com.lhh.springcloud.pojo
  mapper-locations: classpath:mappers/*.xml
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

spring:
  application:
    name: springcloud-provider-emp
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    #    url: jdbc:mysql://localhost:3306/db01
    url: jdbc:mysql://localhost:3306/springcloud?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
    username: root
    #    password: root
    password: 123456
    #datasource category
    type: com.alibaba.druid.pool.DruidDataSource

#eureka的配置
#Eureka配置:服务注册到哪里
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/
  instance:
    instance-id: springcloud-provider-emp-8001 #修改eureka上面的默认描述信息
    prefer-ip-address: true #显示服务来自哪个ip地址

#info监控信息配置
info:
  app.name: lhh-springcloud
  company.name: lhh.com

debug: true

2. Iniciar

inicio springcloud-eureka-7001,springcloud-provider-emp-8001

package com.lhh.springcloudprovideremp8001;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

/*@SpringBootApplication*/
@SpringBootApplication(exclude= {
    
    DataSourceAutoConfiguration.class})
@MapperScan("com.lhh.springcloudprovideremp8001.dao")
@EnableEurekaClient
public class SpringcloudProviderEmp8001Application {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(SpringcloudProviderEmp8001Application.class, args);
    }
}

localhost:7001Visita a través .

Se espera ver que el registro eureka tenga un servicio 8001.

3. Demostrar un mecanismo de autoprotección

Si cierra el servicio 8001, verá que el registro de eureka aún puede ver la información del servicio y mantenerla durante un cierto período de tiempo (el valor predeterminado es 90). Cuando se exceda este período de tiempo, se lanzará una excepción. Este es el resultado correcto.

para resumir

Debido a la dependencia de esa pieza, no se ha resuelto, y por el momento no se ha encontrado la forma de lidiar con ella, así que lo dejo de lado por ahora, lo pienso más tarde y lo resuelvo de nuevo.

Supongo que te gusta

Origin blog.csdn.net/qq_41486775/article/details/114395224
Recomendado
Clasificación