Plugin Kong
El plugin de Kong soporta cuatro dimensiones, el orden de ejecución es de arriba a abajo, y cabe señalar que si el mismo plugin está configurado en diferentes dimensiones, solo se ejecutará una vez:
- Aplica la API más la mezcla de consumidores;
- Aplicado a consumidores;
- Aplicado en la API;
- Aplicado a nivel global;
Además, no todos los plugins soportan definir consumidores
Añadir otra API para pruebas Añadir una nueva interfaz:
{ "created_at": 1515055457572, "strip_uri": cierto, "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "nombre": "cônsul-cônsul-servicio2", "métodos": [ "VETE" ], "http_if_terminated": falso, "preserve_host": falso, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/usuario" ], "upstream_send_timeout": 60000, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "reprisas": 5, "https_only": falso
}
Añadir vapores
{ "created_at": 1515055993113, "Lista de Órdenes": [ 41, 28, 44, 14, 79, 38, 30, 69, 15, 88, 72, 53, 89, 47, 81, 43, 60, 91, 92, 100, 98, 55, 12, 40, 9, 31, 84, 24, 36, 39, 96, 74, 6, 8, 93, 99, 78, 34, 49, 37, 61, 76, 33, 35, 32, 77, 70, 26, 52, 87, 73, 23, 57, 25, 17, 90, 62, 82, 19, 75, 50, 4, 51, 42, 65, 66, 63, 3, 1, 68, 94, 67, 20, 80, 54, 7, 5, 16, 85, 13, 46, 10, 97, 22, 48, 11, 27, 86, 18, 59, 83, 21, 56, 95, 2, 64, 58, 71, 45, 29 ], "id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "nombre": "spring-boot-consul-service2.service.dc1.consul", "Slots": 100
}
Añadir objetivos
Información de Tagets
{ "total": 3, "datos": [ { "created_at": 1515056103599, "id": "994e7886-3e48-45cb-80AD-3F7918ede007", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "objetivo": "192.168.0.186:17004", "peso": 15 }, { "created_at": 1515056109570, "id": "03b477ee-a69d-49ee-9892-276f451c373c", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "objetivo": "192.168.0.185:17004", "peso": 15 }, { "created_at": 1515056112730, "id": "8ace8d83-4504-4334-ad04-f0b536963df9", "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4", "objetivo": "192.168.0.184:17004", "peso": 15 } ]
}
La lista actual de APIs es la siguiente:
{ "total": 2, "datos": [ { "created_at": 1515055457572, "strip_uri": cierto, "id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "nombre": "cônsul-cônsul-servicio2", "métodos": [ "VETE" ], "http_if_terminated": falso, "https_only": falso, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "uris": [ "/usuario" ], "preserve_host": falso, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "reintentos": 5 }, { "created_at": 1514995615974, "strip_uri": cierto, "id": "b8431831-6a77-434e-ac4a-7e379550714f", "nombre": "servicio cónsul-botas-resorte", "métodos": [ "VETE" ], "http_if_terminated": falso, "https_only": falso, "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003", "uris": [ "/servicio" ], "preserve_host": falso, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "reintentos": 5 } ]
}
Las interfaces de acceso devuelven lo siguiente:
{ "MSG": "Vale", "fecha": { "puntuación": 42, "nombre": "árbol", "id": 1, "edad": 12, "nowTime": 1515060166929, "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004" }, "código": 200
} { "MSG": "Vale", "fecha": { "puntuación": 505, "nombre": "árbol", "id": 1, "edad": 12, "nowTime": 1515060402392, "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003" }, "código": 200
} Añadir el plugin de Key-Auth
Abre el plugin de autenticación de teclas
{ "created_at": 1515066239000, "config": { "key_in_body": falso, "run_on_preflight": cierto, "anónimo": "", "hide_credentials": falso, "key_names": [ "apikey" ] }, "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427", "habilitado": cierto, "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "nombre": "key-auth"
} Luego accede a la interfaz con un error como este:
Elimina el plugin de autenticación de teclas
Echa un vistazo al plugin de vinculación de API
Añadir el limitador de velocidad de los plugins limitadores de velocidad
Producción
{ "created_at": 1515068825000, "config": { "minuto": 10, "política": "cluster", "redis_timeout": 2000, "hide_client_headers": falso, "segundo": 2, "limit_by": "consumidor", "redis_port": 6379, "redis_database": 0, "fault_tolerant": cierto }, "id": "482c627f-4041-4320-9b2f-0cc7722b92ea", "nombre": "limitador de tasas", "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282", "habilitado": verdadero
} Cuando la interfaz de acceso supere el límite, se recibirán las siguientes declaraciones:
Devolución
{ "message": "Límite de tasa API superado"
} Sin embargo, todavía existen algunos problemas, ya que el formato de mensaje es fijo, el formato de salida no es consistente con el servicio de backend y es necesario soportar formatos de mensaje personalizados.
Kong modifica el valor de retorno de excepción Por ejemplo, el formato unificado de mensaje del servicio es el siguiente:
{ "código": 200, "MSG": "Vale", "data": {xxx}
} También queremos que la devolución de excepción del Kong siga en el mismo formato que antes. Entonces podemos modificar directamente el código fuente de Kong, que en realidad es muy sencillo.
Empieza descargando el código fuente
#下载kong插件源码
Clon de Gitgit@github.com:Kong/kong.git
Localiza el código de salida para modificar
El código de salida está en kong/kong/tools/responses.lua, ábrelo para editarlo.
Guarda y luego compila
[root@tree81 Kong]# Los luarocks hacen Kong 0.11.2-0 está ahora instalado en /usr/local (licencia: MIT) Lanza, inténtalo de nuevo
Actualiza rápidamente la dirección varias veces seguidas:El inicio de sesión del hipervínculo es visible.Recibe un mensaje de error:
{ "código": 429, "msg": "Límite de tasa API superado"
} Hecho, perfecto :) |