Apache APISIX es un portal API en tiempo real, dinámico y de alto rendimiento.
APISIX proporciona variadas opciones de manejo de tráfico tales como balanceo de cargas, upstream dinámico, comprobación tipo despliegue de canarios (canary release), interrupción de circuitos, autenticación, observabilidad y más.
Usted puede usar Apache APISIX para manejar el tráfico tradicional norte-sur, así como tráfico este-oeste entre servicios. También puede usarse como k8s ingress controller (control de ingreso).
La arquitectura técnica de Apache APISIX:
#apisix
en nuestro Slack para encontrarse con el equipo y formular preguntas#ApacheAPISIX
Usted puede usar Apache APISIX como un acceso de tráfico para procesar todos los datos del negocio, incluyendo direccionamiento dinámico (dynamic routing), upstream dinámico, certificados dinámicos, ensayos A/B, ensayos de despliegue de canarios (canary release), despliegue azul-verde (blue-green), límite de tasa, defensa contra ataques maliciosos, métrica, monitoreo de alarmas, visibilidad de servicios, gobernabilidad de servicios, etc.
Todas las Plataformas
Multi protocolos
client_id
, soporta ambos MQTT 3.1.*, 5.0.Completamente Dinámico
host
, uri
, schema
, enable_websocket
, headers
para el request antes de reenviarlo aguas arriba (upstream).Enrutamiento con control fino (fine grain)
cookie
, args
, etc. como condiciones de enrutamiento para implementar ensayos de desplegado de canarios, ensayoss A/B, etc.{"arg_age", ">", 24}
Seguridad
OPS amigable
Consul
y Nacos
DNS en modo descubrimiento, y Eurekaallow_admin
en conf/config.yaml
para especificar una lista de IPs a los que se les permite llamar el Admin API. Nótese también que el Admin API utiliza autentificación de clave (key auth) para verificar la identidad de quien llama. El campo admin_key
en conf/config.yaml
debe ser modificado antes del despliegue para asegurar la seguridad.Altamente escalable
rewrite
, access
, header filer
, body filter
y log
, y también permite engancharse en la etapa balancer
.balancer
.APISIX ha sido instalado y probado en los siguientes sistemas:
CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9, Debian 10, macOS, ARM64 Ubuntu 18.04
Hay varias maneras de instalar la versión publicada Apache de APISIX:
Compilación de código fuente (aplicable a todos los sistemas)
Instalación de dependencias en tiempo de ejecución: OpenResty y etcd, y dependencias de compilación: luarocks. Consultar install dependencies documentation
Bajar el paquete de publicación más reciente de código fuente:
$ mkdir apisix-2.3 $ wget https://downloads.apache.org/apisix/2.3/apache-apisix-2.3-src.tgz $ tar zxvf apache-apisix-2.3-src.tgz -C apisix-2.3
Instalar las dependencias:
$ make deps
Chequear la versión de APISIX:
$ ./bin/apisix version
Iniciar APISIX:
$ ./bin/apisix start
Imagen del contenedor Docker (aplicable a todos los sistemas)
Por defecto, el paquete de Apache de más reciente publicación será descargado:
$ docker pull apache/apisix
La imagen del contenedor Docker no incluye etcd
, usted puede consultar docker compose example para iniciar un grupo de ensayos.
Paquete RPM(sólo para CentOS 7)
$ sudo yum install -y https://github.com/apache/apisix/releases/download/2.3/apisix-2.3-0.x86_64.rpm
Chequear versión de APISIX:
$ apisix version
Iniciar APISIX:
$ apisix start
Nota: Apache APISIX no soportaría más el protocolo v2 de etcd desde APISIX v2.0, y la mínima versión soportada de etcd es v3.4.0. Favor actualizar etcd cuando sea necesario. Si usted necesita migrar sus datos desde etcd v2 a la v3, por favor siga los pasos indicados en etcd migration guide.
Para desarrolladores, usted puede usar la más reciente rama maestra (master branch) para experimentar más prestaciones
$ git clone git@github.com:apache/apisix.git $ cd apisix $ make deps
$ git clone https://github.com/apache/apisix-docker.git $ cd apisix-docker $ sudo docker build -f alpine-dev/Dockerfile .
Comenzando
La Guía para Comenzar es una excelente manera de aprender los fundamentos de APISIX, basta seguir los pasos en Getting Started.
Más aún, usted puede seguir la documentación para ensayar más plugins.
Admin API
Apache APISIX brinda REST Admin API para controlar de forma dinámica el grupo (cluster) Apache APISIX.
Desarrollo de Plugin
Usted puede consultar la guía plugin development guide, y la documentación e implementación de código sample plugin echo
.
Por favor note que los plugins de Apache APISIX added, updated, deleted, etc. no son cargados sin reiniciar el servicio.
Para más documentación, por favor visitar Apache APISIX Document Index
Al usar el servidor de 8 núcleos de AWS, los QPS de APISIX alcanzan 140,000 con una latencia de solamente 0.2 ms.
Resultados de la evaluación (Benchmark script), método de ensayo y proceso han sido fuente abierta, usted es bienvenido a intentarlo y contribuir.
Prestaciones | Apache APISIX | KONG |
---|---|---|
Upstream dinámico | Sí | Sí |
Router dinámico | Sí | Sí |
Chequeo del sistema | Sí | Sí |
SSL dinámico | Sí | Sí |
Proxy L4 y L7 | Sí | Sí |
Rastreo abierto | Sí | Sí |
Plugin personalizado | Sí | Sí |
REST API | Sí | Sí |
CLI | Sí | Sí |
Prestaciones | Apache APISIX | Kong |
---|---|---|
Le pertenece a | Apache Software Foundation | Kong Inc. |
Arquitectura de la tecnología | Nginx + etcd | Nginx + postgres |
Canales de comunicación | Lista de correos, grupo Wechat, grupo QQ, GitHub, meetup | GitHub, freenode, foro |
CPU de un solo núcleo, QPS (activa limit-count y plugins prometheus) | 18000 | 1700 |
Latencia | 0.2 ms | 2 ms |
Dubbo | Sí | No |
Retroceso-deshacer de configuration | Sí | No |
Ruta con TTL | Sí | No |
Plug-in carga en caliente | Sí | No |
LB y ruta personalizados | Sí | No |
REST API <--> transcodificación gRPC | Sí | No |
Tengine | Sí | No |
MQTT | Sí | No |
Tiempo efectivo de Configuración | Determinado por los eventos, < 1ms | Recabando datos, 5 seg |
Tablero | Sí | No |
IdP | Sí | No |
Centro de configuración HA | Sí | No |
Límite de velocidad para una ventana específica de tiempo | Sí | No |
Soporta cualquier variable Nginx como condición de enrutamiento | Sí | No |
Ensayo de comparación de desempeño datos detallados
Una gran variedad de compañías y organizacioes usan APISIX para investigación, producción y productos comerciales, incluyendo:
Se alienta a los usuarios a sumarse a la página Powered By.
Inspirado por Kong y Orange.