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.
Controllers like ConsulServiceRegistry
, EtcdServiceRegistry
, EurekaServiceRegistry
, ZookeeperServiceRegistry
, and NacosServiceRegistry
are specialized for service registry tasks.
Others, such as HTTPServer
and GRPCServer
, focus on managing network traffic.
Still others, like AutoCertManager
and GlobalFilter
, are designed to handle specific business logic.
For more information, refer to controllers.
The 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 Pipelines
.
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.