Comparativo de Seleção entre API Gateway Apache APISIX e Kong

API7.ai

January 18, 2020

Products

Apache APISIX e Kong são ambos gateways de API de microsserviços de código aberto, então como você os compara e escolhe entre eles?

Esses dois projetos possuem documentação e testes completos, e muitos usuários em produção estão utilizando-os, então não se preocupe com a estabilidade e o desenvolvimento sustentável deles. Este artigo focará nas funcionalidades e desempenho mais diretos e verificáveis, para fazer uma comparação de uma perspectiva diferente.

Esses dois projetos possuem documentação e testes completos, e muitos usuários em produção estão utilizando-os, então não se preocupe com a estabilidade e o desenvolvimento sustentável deles. Este artigo focará nas funcionalidades e desempenho mais diretos e verificáveis, para fazer uma comparação de uma perspectiva diferente.

FuncionalidadesApache APISIXKONG
Upstream dinâmicoSimSim
Roteador dinâmicoSimSim
Verificação de saúdeSimSim
SSL dinâmicoSimSim
Proxy L4 e L7SimSim
OpentracingSimSim
Plugin personalizadoSimSim
API RESTSimSim
CLISimSim

Para uma comparação mais detalhada.

FuncionalidadesApache APISIXKong
Pertence aApache Software FoundationKong Inc.
Arquitetura TécnicaNginx + etcdNginx + postgres
Canais de comunicaçãoLista de e-mails, grupo Wechat, grupo QQ, GitHub, meetupGitHub, freenode, fórum
QPS com CPU single-core (habilitando plugins limit-count e prometheus)180001700
Latência0.2 ms2 ms
DubboSimNão
Reversão de configuraçãoSimNão
Rota com TTLSimNão
Carregamento a quente de pluginsSimNão
Balanceamento de carga e rota personalizadosSimNão
Transcodificação REST API <--> gRPCSimNão
TengineSimNão
MQTTSimNão
Tempo de efetivação da configuraçãoDirigido por eventos, < 1msPolling, 5 segundos
DashboardSimNão
IdPSimNão
Alta disponibilidade do centro de configuraçãoSimNão
Limite de velocidade para uma janela de tempo especificadaSimNão
Suporte a qualquer variável do Nginx como condição de roteamentoSimNão

Desempenho

Após habilitar os plugins limit-count e prometheus, o desempenho do Apache APISIX é dez vezes maior que o do Kong.

Aqui estão os passos mais detalhados: https://gist.github.com/membphis/137db97a4bf64d3653aa42f3e016bd01, Desenvolvedores interessados podem seguir o exemplo para verificar.

Por que o Apache APISIX se destaca?

Aqui, discutimos as razões por trás das diferenças em funcionalidades e desempenho:

  1. A complexidade de roteamento do Apache APISIX é O(k), que está relacionada apenas ao comprimento do URI e não ao número de rotas; a complexidade de tempo de roteamento do Kong é O(n), que aumenta linearmente com o número de rotas.

  2. A complexidade de tempo de correspondência de IP do Apache APISIX é O(1), o que não causa esgotamento de recursos da CPU com um grande número de verificações de IP.

  3. A correspondência de rotas do Apache APISIX aceita todas as variáveis do Nginx como condições e suporta funções personalizadas; outros gateways têm algumas condições embutidas.

  4. O Apache APISIX usa etcd como centro de configuração. Não há ponto único. Se uma máquina cair aleatoriamente, o cluster de gateway ainda pode operar normalmente. Outros gateways baseados em bancos de dados relacionais terão um problema de ponto único.

  5. A configuração do Apache APISIX pode alcançar todos os nós do gateway em menos de 1 milissegundo, usando o watch do etcd; outros gateways fazem polling no banco de dados regularmente, e geralmente levam 5 segundos para obter a configuração mais recente.

  6. Os plugins do Apache APISIX foram cuidadosamente ajustados para manter a latência em milissegundos sob alta pressão.

  7. O arranjo único de plugins e a característica de baixo código do Apache APISIX podem reduzir significativamente o limiar de desenvolvimento secundário.

Leia mais

Tags: