configuración de reglas
Para configurar reglas de control de flujo del clúster a través de la consola Sentinel, es necesario modificar la consola. Proporcionamos las interfaces correspondientes para la adaptación.
A partir de Sentinel 1.4.0, extrajimos la interfaz para enviar y extraer reglas al centro de configuración remota:
DynamicRuleProvider<T>
: regla de extracciónDynamicRulePublisher<T>
: empujar regla
Para escenarios de límite de flujo de clúster, dado que cada regla de límite de flujo de clúster requiere un ID de flujo único, recomendamos que todas las configuraciones de reglas se administren a través de fuentes de reglas dinámicas y que las reglas de límite de flujo de clúster se generen en un lugar unificado.
Proporcionamos una nueva versión de la página de reglas de control de flujo, que puede impulsar reglas para la dimensión de la aplicación y puede generar automáticamente flowId para las reglas de límite de flujo del clúster. Los usuarios solo necesitan implementar DynamicRuleProvider
una DynamicRulePublisher
interfaz para implementar el envío de dimensiones de la aplicación (URL:) /v2/flow
.
Nota: La implementación predeterminada de la página de reglas de control de tráfico de inserción en la dimensión de la aplicación solo es compatible con la versión anterior de la API (impulsión por lotes de máquinas válidas/extracción de las últimas reglas de máquinas válidas) y no es válida para las reglas de clúster. No se recomienda utilizar la implementación predeterminada en el entorno de producción y se recomienda conectarse a la fuente de reglas dinámicas.
Proporcionamos ejemplos de implementación de reglas push y pull para Nacos, ZooKeeper y Apollo (en test
el directorio). Tomando Nacos como ejemplo, si desea utilizar Nacos como centro de configuración de reglas dinámicas, los usuarios pueden extraer clases relacionadas y luego solo necesitan especificar FlowControllerV2
el bean correspondiente para habilitar la adaptación de Nacos. La página de inicio debe cambiarse manualmente o la configuración de enrutamiento de front-end debe modificarse (la sidebar.html
ruta de la regla de control de flujo se puede dashboard.flowV1
cambiar desde dashboard.flow
y el cuadro de diálogo de la página de enlace del punto de clúster debe modificarse por sí mismo) .
@Autowired @Qualifier("flowRuleNacosProvider") private DynamicRuleProvider<List<FlowRuleEntity>> ruleProvider; @Autowired @Qualifier("flowRuleNacosPublisher") private DynamicRulePublisher<List<FlowRuleEntity>> rulePublisher;
Las convenciones predeterminadas de ID de datos y ID de grupo adaptadas de Nacos son las siguientes:
- Identificación del grupo:
SENTINEL_GROUP
- ID de datos de la regla de control de flujo:
{appName}-flow-rules
por ejemplo, si el nombre de la aplicación es appA, entonces el ID de datos esappA-flow-rules
Los usuarios pueden NacosConfigUtil
modificar el postfijo correspondiente de groupId y dataId. Los usuarios pueden configurar el decodificador y codificador NacosConfig
correspondiente Converter
proporcionado de forma predeterminada .FlowRuleEntity
Nota : El terminal de acceso también necesita registrar la fuente de reglas dinámicas correspondiente; consulte el documento de configuración de reglas de control de flujo del clúster .
Gestión de control de flujo de clúster
Nota: El cliente debe introducir dependencias relacionadas con la limitación de corriente del clúster (por ejemplo, si necesita utilizar la limitación de corriente del clúster, debe introducir las dependencias del cliente que limitan la corriente del clúster; si necesita usarlo como un servidor de limitación de corriente del clúster integrado, debe También es necesario introducir las dependencias del servidor que limitan la corriente del clúster); de lo contrario, no se puede configurar.
La consola de Sentinel versión 1.4.1 presenta la página de administración de control de flujo del clúster de la dimensión de la aplicación, que puede asignar convenientemente servidores de tokens y ver el estado relacionado desde la dimensión de la aplicación. Podemos hacer clic en "Control de flujo de clúster" en la barra lateral para ingresar a la página de lista de servidores de tokens, donde podemos ver todas las listas de servidores de tokens y el estado relacionado en la aplicación actual:
Podemos hacer clic en el botón "Agregar servidor de token" en la esquina superior derecha para agregar un nuevo servidor de token y asignar un cliente:
Lista de clientes de tokens