Comparativa de selección entre API Gateway Apache APISIX y Kong

API7.ai

January 18, 2020

Products

Apache APISIX y Kong son ambos gateways de API de microservicios de código abierto, entonces, ¿cómo se comparan y cómo elegir entre ellos?

Estos dos proyectos cuentan con documentación y pruebas completas, y muchos usuarios en producción los están utilizando, por lo que no hay que preocuparse por su estabilidad y desarrollo sostenible. Este artículo se centrará en las funciones y el rendimiento más directos y verificables, para hacer una comparación desde una perspectiva diferente.

Estos dos proyectos cuentan con documentación y pruebas completas, y muchos usuarios en producción los están utilizando, por lo que no hay que preocuparse por su estabilidad y desarrollo sostenible. Este artículo se centrará en las funciones y el rendimiento más directos y verificables, para hacer una comparación desde una perspectiva diferente.

CaracterísticasApache APISIXKONG
Upstream dinámico
Enrutador dinámico
Chequeo de salud
SSL dinámico
Proxy L4 y L7
Opentracing
Plugin personalizado
API REST
CLI

Para una comparación más detallada.

CaracterísticasApache APISIXKong
Pertenece aApache Software FoundationKong Inc.
Arquitectura técnicaNginx + etcdNginx + postgres
Canales de comunicaciónLista de correo, grupo de Wechat, grupo de QQ, GitHub, meetupGitHub, freenode, foro
CPU de un solo núcleo, QPS (habilitando plugins limit-count y prometheus)180001700
Latencia0.2 ms2 ms
DubboNo
Reversión de configuraciónNo
Ruta con TTLNo
Carga en caliente de pluginsNo
Balanceador de carga y ruta personalizadosNo
Transcripción de API REST <--> gRPCNo
TengineNo
MQTTNo
Tiempo de efectividad de la configuraciónBasado en eventos, < 1msPolling, 5 segundos
Panel de controlNo
IdPNo
Alta disponibilidad del centro de configuraciónNo
Limitación de velocidad para una ventana de tiempo específicaNo
Soporte de cualquier variable de Nginx como condición de enrutamientoNo

Rendimiento

Después de habilitar los plugins limit-count y prometheus, el rendimiento de Apache APISIX es diez veces superior al de Kong.

Aquí hay pasos más detallados: https://gist.github.com/membphis/137db97a4bf64d3653aa42f3e016bd01, los desarrolladores interesados pueden seguir la imagen para verificar.

¿Por qué Apache APISIX supera a Kong?

Aquí discutimos las razones detrás de las diferencias en funcionalidad y rendimiento:

  1. La complejidad de enrutamiento de Apache APISIX es O(k), que solo está relacionada con la longitud del URI y no tiene nada que ver con el número de rutas; la complejidad temporal de enrutamiento de Kong es O(n), que aumenta linealmente con el número de rutas.

  2. La complejidad temporal de coincidencia de IP de Apache APISIX es O(1), lo que no agotará los recursos de la CPU con un gran número de juicios de IP.

  3. La coincidencia de rutas de Apache APISIX acepta todas las variables de Nginx como condiciones y admite funciones personalizadas; otras puertas de enlace tienen varias condiciones integradas.

  4. Apache APISIX utiliza etcd como centro de configuración. No hay un punto único. Si una máquina falla arbitrariamente, el clúster de la puerta de enlace aún puede funcionar normalmente. Otras puertas de enlace basadas en bases de datos relacionales tendrán un problema de punto único.

  5. La configuración de Apache APISIX puede llegar a todos los nodos de la puerta de enlace en menos de 1 milisegundo, utilizando etcd watch; otras puertas de enlace consultan la base de datos periódicamente, y generalmente tardan 5 segundos en obtener la última configuración.

  6. Los plugins de Apache APISIX han sido cuidadosamente ajustados para mantener una latencia de milisegundos bajo alta presión.

  7. La disposición única de plugins y la característica de bajo código de Apache APISIX pueden reducir significativamente el umbral de desarrollo secundario.

Lectura adicional

Tags: