Sentinel
agrega una dependencia experta en el procesamiento de degradación del límite actual del proveedor de la solicitud
<!--引入sentinel 熔断 降级 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
Agregue la siguiente información de configuración al archivo application.yml del proyecto:
#配置sentinel
spring:
sentinel:
transport:
dashboard: localhost:8883
#控制台的port
port: 8719
Descarga sentinel e instálalo localmente
https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel
La versión que instalé aquí es sentinel.dashboard-1.6.3.jar
donde sentinel.dashboard-1.6.3.jar
se encuentra Abrir cmd debajo del directorio para ejecutar el comando:
java -jar sentinel.dashboard-1.6.3.jar --server.port=8883
El navegador abre la página;
ingrese el nombre de usuario de inicio de sesión:
contraseña de centinela : centinela
solicita aleatoriamente una ruta para el proyecto, la siguiente información aparecerá en el panel del tablero.
Cada microservicio presenta información de auditoría estadística spring-boot-starter-actuator
Cada microservicio presenta información de auditoría estadística spring-boot-starter-actuator
Endpoint admite
la necesidad de agregar spring-boot-starter- a Maven antes de usar la función Endpoint El actuador depende de y permite el acceso de Endpoints en la configuración.
Agregue la configuración management.security.enabled = false en Spring Boot 1.x. La ruta del punto final expuesto es / sentinel
Agregue la configuración management.endpoints.web.exposure.include = * en Spring Boot 2.x. La ruta del punto final expuesto es / actuador / centinela
La información expuesta en Sentinel Endpoint es muy útil. Incluyendo toda la información de las reglas de la aplicación actual, el directorio de registro, la IP de la instancia actual, la dirección del Panel de Sentinel, la Página de Bloqueo, la frecuencia de latido de la aplicación y el Panel de Sentinel, etc.
El proveedor reduce el procesamiento y
agrega dependencia de maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Agregar información de configuración al archivo de configuración
management.endpoints.web.exposure.include=*
Agregar una clase de configuración de respuesta de control de flujo personalizada
**
* @date 2021-02-22 2:19 下午
* @description sentinel自定义返回方法
*/
@Configuration
public class MySeckillSentinelConfig {
public MySeckillSentinelConfig() {
WebCallbackManager.setUrlBlockHandler(new UrlBlockHandler() {
@Override
public void blocked(HttpServletRequest request, HttpServletResponse response, BlockException e) throws IOException {
//请求流量过大就返回
R r = R.error(BizCodeEnume.TO_MANY_REQUEST.getCode(), BizCodeEnume.TO_MANY_REQUEST.getMsg());
//解决response乱码
response.setCharacterEncoding("utf-8");
response.setContentType("application/json");
response.getWriter().write(JSON.toJSONString(r));
}
});
}
}
Se activará cuando el tráfico de solicitudes sea demasiado grande.