Directorio de artículos
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=fase
mecanismo 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:7001
Visita 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.