Skip to content

APISIX

homepage-banner

API Gateway is a critical component in modern microservices architecture. It provides a unified entry point for all the APIs exposed by the microservices. Apache APISIX is a high-performance, scalable, and open-source API Gateway that can handle millions of requests per second.

What is Apache APISIX?

Apache APISIX is a cloud-native API Gateway that is built on top of Nginx and Lua. It provides a simple and efficient way to manage and secure APIs. APISIX is designed to handle millions of requests per second and can be deployed in a distributed environment.

Features of Apache APISIX

  • Dynamic Routing: APISIX provides dynamic routing capabilities that allow you to route requests to different microservices based on the request path, headers, and other parameters.
  • Load Balancing: APISIX supports multiple load balancing algorithms, including round-robin, IP hash, and least connections.
  • Authentication and Authorization: APISIX provides built-in authentication and authorization mechanisms that allow you to secure your APIs.
  • Rate Limiting: APISIX supports rate limiting to prevent abuse and ensure fair usage of your APIs.
  • Plugins: APISIX provides a plugin architecture that allows you to extend its functionality. It comes with several built-in plugins, including JWT authentication, CORS, and IP restriction.

Use cases

  • Microservices Architecture: APISIX is designed to work with microservices architecture and can be used to manage and secure APIs exposed by microservices.
  • API Management: APISIX provides a unified entry point for all the APIs exposed by the microservices. It can be used to manage and monitor APIs, enforce security policies, and rate limit requests.
  • Service Mesh: APISIX can be used as a service mesh to manage traffic between microservices. It can be deployed as a sidecar proxy and can handle traffic routing, load balancing, and service discovery.
  • Serverless Architecture: APISIX can be used in serverless architecture to manage and secure APIs exposed by serverless functions. It can be used to enforce security policies, rate limit requests, and provide a unified entry point for all the APIs.
  • Cloud-Native Applications: APISIX is designed to work in a cloud-native environment and can be deployed in a Kubernetes cluster. It can be used to manage and secure APIs exposed by cloud-native applications.

How to use Apache APISIX?

APISIX can be deployed in a Kubernetes cluster or as a standalone service. It provides a RESTful API that can be used to manage and configure the Gateway. APISIX also provides a web-based dashboard that allows you to monitor the Gateway’s performance and configure its settings.

Install APISIX on K8s with helm

helm repo add apisix https://charts.apiseven.com
helm repo update

### Install apisix
helm install apisix apisix/apisix

### Install Dashboard
helm install apisix-dashboard apisix/apisix-dashboard

### Check installation
kubectl get services
NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
apisix-admin           ClusterIP   10.128.112.5     <none>        9180/TCP            28m
apisix-dashboard       ClusterIP   10.128.200.49    <none>        80/TCP              21m
apisix-etcd            ClusterIP   10.128.138.84    <none>        2379/TCP,2380/TCP   28m
apisix-etcd-headless   ClusterIP   None             <none>        2379/TCP,2380/TCP   28m
apisix-gateway         NodePort    10.128.221.156   <none>        80:30710/TCP        28m

Forward Admin API

kubectl port-forward service/apisix-admin 9080:9180

Forward worker API

kubectl port-forward service/apisix-gateway 8080:80

Forward Dashboard

kubectl port-forward service/apisix-dashboard 8888:80

Conclusion

Apache APISIX is a powerful and scalable API Gateway that can handle millions of requests per second. It provides a simple and efficient way to manage and secure APIs in a microservices architecture. With its dynamic routing, load balancing, authentication, and authorization capabilities, APISIX is an excellent choice for modern cloud-native applications.

Reference

  • https://apisix.apache.org/
  • https://github.com/apache/apisix
Leave a message