NGINX evoluciona hacia la nube nativa, todo en OpenNJet
1. Introducción
Después de que NJet haya modificado y adaptado el módulo STS (https://github.com/vozlt/nginx-module-sts) proporcionado por la comunidad de código abierto, se utiliza para generar la información del indicador del Stream Server y admite la devolución de json. Formatos html y prometheus.
2. Instrucciones de configuración
Instrucciones de configuración del plano de datos
zona_estado_tráfico_servidor
gramática | server_traffic_status_zone [compartido:nombre:tamaño] |
valor por defecto | compartido:stream_server_traffic_status:1m |
Ubicación de configuración | arroyo |
Descripción: Configure un área de memoria compartida que almacene el estado de ejecución del servidor de transmisión.
estado_tráfico_servidor
gramática | server_traffic_status<activado |
valor por defecto | apagado |
Ubicación de configuración | flujo, servidor |
Descripción: si se deben registrar los indicadores del servidor de transmisión. Si el comando server_traffic_status_zone está configurado, la recopilación de indicadores se habilitará automáticamente.
server_traffic_status_filter_by_set_key
gramática | server_traffic_status_filter_by_set_key clave [nombre] |
valor por defecto | - |
Ubicación de configuración | flujo, servidor |
Descripción: Agrupe (nombre) y subgrupo (clave) las estadísticas de tráfico de Stream. Puede utilizar variables, como $server_addr, $server_port, etc. Cuando no se especifica el nombre del parámetro, el valor predeterminado es streamFilterZones.
Instrucciones de configuración del plano de control
stream_server_traffic_status_display
gramática | stream_server_traffic_status_display |
valor por defecto | - |
Ubicación de configuración | ubicación |
Descripción: este comando se utiliza para obtener la información del indicador del servidor de transmisión. El formato de salida predeterminado lo establece el comando stream_server_traffic_status_display.
stream_server_traffic_status_display_format
gramática | stream_server_traffic_status_display_format <json |
valor por defecto | json |
Ubicación de configuración | ubicación |
Descripción: Este comando se utiliza para configurar el formato de retorno predeterminado del indicador.
3. Ejemplo de archivo de configuración
El módulo njet.conf njt_stream_stsc_module se compila estáticamente y no es necesario cargarlo por separado.
worker_processes auto;
cluster_name njet;
node_name node1;
error_log logs/error.log error;
helper ctrl /usr/local/njet/modules/njt_helper_ctrl_module.so /usr/local/njet/conf/njet_ctrl.conf;
helper broker /usr/local/njet/modules/njt_helper_broker_module.so;
events {
worker_connections 1024;
}
http {
}
stream {
server_traffic_status_zone shared:aabbcc:2m;
upstream tcpa {
server 127.0.0.1:1234;
}
server {
listen 1234;
server_traffic_status off;
server_traffic_status_filter_by_set_key * $server_addr;
return "aa\n";
}
server {
listen 1235;
server_traffic_status on;
proxy_pass tcpa;
}
}
njet_ctrl.conf necesita cargar el módulo dinámico njt_stream_stsd_module.so
load_module /usr/local/njet/modules/njt_http_sendmsg_module.so;
load_module /usr/local/njet/modules/njt_ctrl_config_api_module.so;
load_module /usr/local/njet/modules/njt_helper_health_check_module.so;
load_module /usr/local/njet/modules/njt_http_upstream_api_module.so;
load_module /usr/local/njet/modules/njt_http_location_api_module.so;
load_module /usr/local/njet/modules/njt_doc_module.so;
load_module /usr/local/njet/modules/njt_http_vtsd_module.so;
load_module /usr/local/njet/modules/njt_stream_stsd_module.so;
error_log logs/error_ctrl.log error;
events {
worker_connections 1024;
}
http {
include mime.types;
access_log off;
server {
listen 8081;
location / {
return 200 "njet control panel\n";
}
location /api {
dyn_module_api;
}
location /doc {
doc_api;
}
location /metrics {
vhost_traffic_status_display;
vhost_traffic_status_display_format html;
}
location /stream_metrics {
stream_server_traffic_status_display;
stream_server_traffic_status_display_format html;
}
}
}
4.4.Configuración dinámica
NJet puede configurar dinámicamente si el servidor de transmisión recopila indicadores.
Para utilizar la función de configuración dinámica, el módulo de configuración dinámica sts debe cargarse en njet.conf:
load_module /usr/local/njet/modules/njt_stream_dyn_sts_module.so;
El esquema del mensaje API de configuración dinámica se define de la siguiente manera:
{
"$id": "dynsts",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"type": "object",
"required": ["servers"],
"properties": {
"servers": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["listens", "server_traffic_status"],
"properties": {
"listens": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"server_traffic_status": {
"type": "boolean"
},
"server_traffic_status_filter_by_set_key": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
}
}
}
}
}
Ejemplo de mensaje:
{
"servers": [
{
"listens": [
"0.0.0.0:18082"
],
"server_traffic_status": true,
"server_traffic_status_filter_by_set_key":
[
"* $server_addr"
]
}
]
}
Utilice GET para consultar la configuración actual
curl localhost:8081/api/v1/config/stream_dyn_sts
Utilice PUT para actualizar la configuración.
curl -X PUT -d
'{"servers":[{"listens":["0.0.0.0:1234"],"server_traffic_status":false,"server_traffic_status_filter_by_set_key":["\"*\" \"$server_addr\""]},{"listens":["0.0.0.0:1235"],"server_traffic_status":true,"server_traffic_status_filter_by_set_key":[]}]}'
localhost:8081/api/v1/config/stream_dyn_sts
Linus tomó el asunto en sus propias manos para evitar que los desarrolladores del kernel reemplacen las pestañas con espacios. Su padre es uno de los pocos líderes que puede escribir código, su segundo hijo es el director del departamento de tecnología de código abierto y su hijo menor es un núcleo. Colaborador de código abierto Huawei: tomó 1 año convertir 5000 aplicaciones móviles de uso común Migración completa a Hongmeng Java es el lenguaje más propenso a vulnerabilidades de terceros Wang Chenglu, el padre de Hongmeng: el código abierto Hongmeng es la única innovación arquitectónica. En el campo del software básico en China, Ma Huateng y Zhou Hongyi se dan la mano para "eliminar rencores". Ex desarrollador de Microsoft: el rendimiento de Windows 11 es "ridículamente malo " " Aunque lo que Laoxiangji es de código abierto no es el código, las razones detrás de él. Son muy conmovedores. Meta Llama 3 se lanza oficialmente. Google anuncia una reestructuración a gran escala.El motor de aplicaciones NJet logra capacidades únicas de carga de configuración dinámica en tiempo de ejecución a través de la reconstrucción del kernel y es una nueva generación de motores de aplicaciones web de alto rendimiento . NJet tiene capacidades de procesamiento de plano de datos de alto rendimiento y programa múltiples funciones auxiliares, como agrupación en clústeres, alta disponibilidad, comprobaciones de estado activas y API declarativas a través del marco de servicio CoPilot exclusivo de NJet para facilitar la expansión de funciones y aislar los pares de funciones de gestión/control. Además del impacto en el plano de datos, el rendimiento del motor de aplicaciones NJet supera tres veces el del motor de aplicaciones Envoy recomendado por CNCF. Sitio web oficial del grupo de correo.