Coder Social home page Coder Social logo

yibei333 / gateways-routing-benchmark Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vm-001/gateways-routing-benchmark

0.0 1.0 0.0 346 KB

API Gateways routing performance benchmark

Home Page: https://vm-001.github.io/gateways-routing-benchmark/

Shell 0.58% Python 0.85% Lua 95.00% Makefile 3.56%

gateways-routing-benchmark's Introduction

API Gateway routing benchmark

This benchmark tool compares the routing performance of different API Gateways in multiple real-world scenarios.

Tested API Gateways

Test data

  • Single Static API: This has only one single static route /api. The benchmark result represents the pure proxy performance without involving too much routing.
  • Statis API: Consists of 100 static routes. (TDB)
  • OpenAI API: Consists of 36 routes from openapi/openai-openapi/openapi.yaml. A small set of APIs containing both static and dynamic paths. This represents a scenario defining a small number of APIs in gateway.
  • Okta API: Consists of 217 routes from okta/okta-management-openapi-spec/resources/spec.yaml. A medium number of APIs.
  • Github API: Consists of 609 routes from api.github.com.yaml. The characteristic of the data is that most of the APIs share the same dynamic prefix /repos/{owner}/{repo}/. It's challenging for routing algorithms to locate the right API by leveraging the static sub-path.

Motivation

Many API Gateways claim they have excellent performance based on benchmarks, which is usually not wrong. However, these benchmarks typically imply the proxy performance, which may not accurately reflect the performance in real-world scenarios. The overall performance of API Gateway does not hinge on one component, but also on others.

Router is one of the key components of API Gateway. Its performance mainly depends on the adopting algorithm and optimization techniques. The performance gap between different Routers can surpass the sum of all other components. An efficient Router enables an API Gateway to maintain close to the benchmark performance in any routing scenario.

Results

Benchmark System:

  • Platform: Amazon EC2 c5.xlarge
  • OS: Ubuntu 22.04
  • Softwares: Docker 26.0.0, wrk 4.1.0

Benchmark Result

Usage

Prerequisites

$ ./benchmark.sh

gateways-routing-benchmark's People

Contributors

vm-001 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.