NGINX evolui para nuvem nativa, tudo em OpenNJet
1. Introdução
Depois que o NJet modificou e adaptou o módulo STS (https://github.com/vozlt/nginx-module-sts) fornecido pela comunidade de código aberto, ele é usado para gerar as informações do indicador do Stream Server e suporta o retorno de json, formatos html e prometheus.
2. Instruções de configuração
Instruções de configuração do plano de dados
server_traffic_status_zone
gramática | server_traffic_status_zone [compartilhado:nome:tamanho] |
valor padrão | compartilhado:stream_server_traffic_status:1m |
Local de configuração | fluxo |
Descrição: Configure uma área de memória compartilhada que armazena o status de execução do servidor de streaming.
server_traffic_status
gramática | server_traffic_status<ativado |
valor padrão | desligado |
Local de configuração | fluxo, servidor |
Descrição: Se deseja registrar indicadores do servidor de fluxo Se o comando server_traffic_status_zone estiver configurado, a coleta de indicadores será habilitada automaticamente.
server_traffic_status_filter_by_set_key
gramática | chave server_traffic_status_filter_by_set_key [nome] |
valor padrão | - |
Local de configuração | fluxo, servidor |
Descrição: Agrupe (nome) e subgrupo (chave) as estatísticas de tráfego do Stream. Você pode usar variáveis, como $server_addr, $server_port, etc. Quando o nome do parâmetro não é especificado, o valor padrão é streamFilterZones.
Instruções de configuração do plano de controle
stream_server_traffic_status_display
gramática | stream_server_traffic_status_display |
valor padrão | - |
Local de configuração | localização |
Descrição: Este comando é utilizado para obter as informações do indicador do servidor de stream. O formato de saída padrão é definido pelo comando stream_server_traffic_status_display.
stream_server_traffic_status_display_format
gramática | stream_server_traffic_status_display_format <json |
valor padrão | json |
Local de configuração | localização |
Descrição: Este comando é utilizado para configurar o formato de retorno padrão do indicador.
3. Exemplo de arquivo de configuração
O módulo njet.conf njt_stream_stsc_module é compilado estaticamente e não precisa ser carregado separadamente.
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 precisa carregar o 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.Configuração dinâmica
O NJet pode configurar dinamicamente se o servidor de stream coleta indicadores.
Para usar a função de configuração dinâmica, o módulo de configuração dinâmica sts precisa ser carregado em njet.conf:
load_module /usr/local/njet/modules/njt_stream_dyn_sts_module.so;
O esquema da mensagem da API de configuração dinâmica é definido da seguinte forma:
{
"$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
}
}
}
}
}
}
}
Exemplo de mensagem:
{
"servers": [
{
"listens": [
"0.0.0.0:18082"
],
"server_traffic_status": true,
"server_traffic_status_filter_by_set_key":
[
"* $server_addr"
]
}
]
}
Use GET para consultar a configuração atual
curl localhost:8081/api/v1/config/stream_dyn_sts
Use PUT para atualizar a configuração
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 resolveu resolver o problema por conta própria para evitar que os desenvolvedores do kernel substituíssem tabulações por espaços. Seu pai é um dos poucos líderes que sabe escrever código, seu segundo filho é o diretor do departamento de tecnologia de código aberto e seu filho mais novo é um núcleo. contribuidor de código aberto Huawei: Demorou 1 ano para converter 5.000 aplicativos móveis comumente usados A migração abrangente para Hongmeng Java é a linguagem mais propensa a vulnerabilidades de terceiros Wang Chenglu, o pai de Hongmeng: Hongmeng de código aberto é a única inovação arquitetônica. no campo de software básico na China. Ma Huateng e Zhou Hongyi apertam as mãos para "remover rancores". Ex-desenvolvedor da Microsoft: o desempenho do Windows 11 é "ridiculamente ruim" " Embora o que Laoxiangji seja de código aberto não seja o código, as razões por trás disso são muito emocionantes. Meta Llama 3 é lançado oficialmente. Google anuncia uma reestruturação em grande escala.O mecanismo de aplicativo NJet atinge recursos exclusivos de carregamento de configuração dinâmica em tempo de execução por meio da reconstrução do kernel e é uma nova geração de mecanismo de aplicativo da Web de alto desempenho . O NJet possui recursos de processamento de plano de dados de alto desempenho e programa múltiplas funções auxiliares, como clustering, alta disponibilidade, verificações de integridade ativas e APIs declarativas por meio da estrutura de serviço copiloto CoPilot exclusiva do NJet para facilitar a expansão de funções e isolar pares de funções de gerenciamento/controle devidos. ao impacto no plano de dados, o desempenho do mecanismo de aplicação NJet excede três vezes o desempenho do mecanismo de aplicação Envoy recomendado pela CNCF. Site oficial do grupo de correio