Easegress operates on the foundational concepts of controllers, pipelines, and filters.
The Easegress controller is the central unit responsible for various operations. Different controllers perform specific tasks; for example, the
HTTPServer controller handles HTTP traffic. These controllers can be created, updated, edited, or deleted using
egctl commands along with YAML files.
NacosServiceRegistry are specialized for service registry tasks.
Others, such as
GRPCServer, focus on managing network traffic.
Still others, like
GlobalFilter, are designed to handle specific business logic.
For more information, refer to controllers.
Pipeline is a built-in Easegress mechanism designed to orchestrate a sequence of filters for handling requests. It often operates in conjunction with
HTTPServer and serves as its backend. The pipeline comprises a flow of filters executed in a defined sequence.
A sample configuration might look like:
name: pipeline-demo kind: Pipeline flow: - filter: validator - filter: proxy ... filters: - name: validator kind: Validator ... - name: proxy kind: Proxy ... ...
For more information, refer to pipeline explained.
A Filter acts as a processor for handling requests and responses. In a pipeline, multiple filters are orchestrated to process the input sequentially, each returning a string result upon completion. Filters are primarily utilized within
For instance, the
Proxy filter serves as a gateway to backend services, while the
RateLimiter filter enhances service reliability and availability by regulating the rate of incoming requests within a specified time frame.
For more information, refer to filters.