This is a cookbook that lists a number of useful and practical examples on how to use Easegress for different scenarios.
- API Aggregator - Aggregating many APIs into a single API.
- Cluster Deployment - How to deploy multiple Easegress cluster nodes.
- Distributed Tracing - How to do APM tracing - Zipkin.
- FaaS - Supporting Knative FaaS integration
- Flash Sale - How to do high concurrent promotion sales with Easegress
- Kubernetes Ingress Controller - How to integrated with Kubernetes as ingress controller, and K8s Ingress Controller for full manual.
- LoadBalancer - A number of strategy of load balancing
- MQTTProxy - An Example to MQTT proxy with Kafka backend.
- Migrate v1.x Filter To v2.x - How to migrate a v1.x filter to v2.x.
- Performance - Performance optimization - compression, caching etc.
- Pipeline - How to orchestrate HTTP filters for requests/responses handling
- Resilience and Fault Tolerance - CircuitBreaker, RateLimiter, Retry, TimeLimiter, etc. (Porting from Java resilience4j)
- Security - How to do authentication by Header, JWT, HMAC, OAuth2, etc.
- Service Proxy - Supporting the Microservice registries - Zookeeper, Eureka, Consul, Nacos, etc.
- WebAssembly - Using AssemblyScript to extend the Easegress
- WebSocket - WebSocket proxy for Easegress
- Workflow - An Example to make a workflow for a number of APIs.
- Multiple API Orchestration - An Telegram translation bot.
- Easegress Roadmap - The development roadmap of Easegress.
- Developer Guide - A guide help to develop the Easegress.
- Source Code Introduction - A slide introduces source code (Dec. 2021 - Easegress v1.4.0)
- Benchmark - Performance Test Report.
- Linux Kernel Tuning - Tuning the Linux Kernel to make the Easegress run faster.
The Easegress controller is the core entity to control kinds of working. There are two kinds of controllers - system and business.
For the full document, please check - Controller Reference
The following controllers are system level controllers. One and only one instance of them are created in every Easegress node and they can't be deleted.
- ServiceRegistry - The service hub for all service registries - Consul, Etcd, Eureka, Zookeeper, Nacos...
- TrafficController - TrafficController handles the lifecycle of TrafficGates(HTTPServer and etc.) and Pipeline and their relationship.
- RawConfigTrafficController - RawConfigTrafficController maps all traffic static configurations to TrafficController in the namespace
default
.
It could be created, updated, deleted by admin operation. They control various resources such as mesh traffic, service discovery, faas, and so on.
- EaseMonitorMetrics - Monitor metrics of Easegress and send them to Kafka.
- FaaSController - For Easegress and FaaS products integration purpose.
- IngressController - an implementation of Kubernetes ingress controller, it watches Kubernetes Ingress, Service, Endpoints, and Secrets then translates them to Easegress HTTP server and pipelines. The K8s Ingress Controller for full manual.
- MeshController - This is for EaseMesh project.
- ConsulServiceRegistry - supports service discovery for Consul as backend.
- EtcdServiceRegistry - support service discovery for Etcd as backend.
- EurekaServiceRegistry - supports service discovery for Eureka as backend.
- ZookeeperServiceRegistry - supports service discovery for Zookeeper as backend.
- NacosServiceRegistry - supports service discovery for Nacos as backend.
- AutoCertManager - automatically manage HTTPS certificates.
- Proxy - The Proxy filter is a proxy of backend service.
- CORSAdaptor - The CORSAdaptor handles the CORS preflight request for backend service.
- Fallback - The Fallback filter mocks a response as fallback action of other filters.
- Mock - The Mock filter mocks responses according to configured rules, mainly for testing purposes.
- RemoteFilter - The RemoteFilter is a filter making remote service acting as an internal filter.
- RateLimiter - The RateLimiter protects backend service for high availability and reliability by limiting the number of requests sent to the service in a configured duration.
- RequestBuilder - The RequestBuilder build a new request from existing requests/responses.
- ResponseBuilder - The ResponseBuilder build a new response from existing requests/responses.
- RequestAdaptor - The RequestAdaptor modifies the original request according to configuration.
- ResponseAdaptor - The ResponseAdaptor modifies the original response according to the configuration before passing it back.
- Validator - The Validator filter validates requests, forwards valid ones, and rejects invalid ones.
- WasmHost - The WasmHost filter implements a host environment for user-developed WebAssembly code.
- Custom Data Management - Create/Read/Update/Delete custom data kinds and custom data items.