Skip to content

Commit

Permalink
Update doc (#660)
Browse files Browse the repository at this point in the history
* update document

* update policy name

* Apply suggestions from code review

Co-authored-by: SU Chen <[email protected]>

* update according to comments

Co-authored-by: SU Chen <[email protected]>
  • Loading branch information
localvar and suchen-sci committed Jun 24, 2022
1 parent 2c5f8c7 commit e4a285c
Show file tree
Hide file tree
Showing 17 changed files with 1,004 additions and 803 deletions.
32 changes: 19 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# Easegress

[![Go Report Card](https://goreportcard.com/badge/github.com/megaease/easegress)](https://goreportcard.com/report/github.com/megaease/easegress) [![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/megaease/easegress/Test/main)](https://github.com/megaease/easegress/actions/workflows/test.yml) [![codecov](https://codecov.io/gh/megaease/easegress/branch/main/graph/badge.svg?token=5Q80B98LPI)](https://codecov.io/gh/megaease/easegress) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/megaease/easegress)](https://github.com/megaease/easegress/blob/main/go.mod) [![Join MegaEase Slack](https://img.shields.io/badge/slack-megaease-brightgreen?logo=slack)](https://join.slack.com/t/openmegaease/shared_invite/zt-upo7v306-lYPHvVwKnvwlqR0Zl2vveA)
[![Go Report Card](https://goreportcard.com/badge/github.com/megaease/easegress)](https://goreportcard.com/report/github.com/megaease/easegress)
[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/megaease/easegress/Test/main)](https://github.com/megaease/easegress/actions/workflows/test.yml)
[![codecov](https://codecov.io/gh/megaease/easegress/branch/main/graph/badge.svg?token=5Q80B98LPI)](https://codecov.io/gh/megaease/easegress)
[![Docker pulls](https://img.shields.io/docker/pulls/megaease/easegress.svg)](https://hub.docker.com/r/megaease/easegress)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/megaease/easegress)](https://github.com/megaease/easegress/blob/main/go.mod)
[![Join MegaEase Slack](https://img.shields.io/badge/slack-megaease-brightgreen?logo=slack)](https://join.slack.com/t/openmegaease/shared_invite/zt-upo7v306-lYPHvVwKnvwlqR0Zl2vveA)

<a href="https://megaease.com/easegress">
<img src="./doc/imgs/easegress.svg"
Expand Down Expand Up @@ -47,10 +53,10 @@ The architecture of Easegress:
- MQTT
- **Rich Routing Rules:** exact path, path prefix, regular expression of the path, method, headers.
- **Resilience&Fault Tolerance**
- **Circuit breaker:** temporarily blocks possible failures.
- **Rate limiter:** limits the rate of incoming requests.
- **Retryer:** repeats failed executions.
- **Time limiter:** limits the duration of execution.
- **Circuit break:** temporarily blocks possible failures.
- **Rate limit:** limits the rate of incoming requests.
- **Retry:** repeats failed executions.
- **Time limit:** limits the duration of execution.
- **Deployment Management**
- **Blue-green Strategy:** switches traffic at one time.
- **Canary Strategy:** schedules traffic slightly.
Expand Down Expand Up @@ -103,7 +109,7 @@ The architecture of Easegress:

The following examples show how to use Easegress for different scenarios.

- [API Aggregator](./doc/cookbook/api-aggregator.md) - Aggregating many APIs into a single API.
- [API Aggregation](./doc/cookbook/api-aggregation.md) - Aggregating many APIs into a single API.
- [Cluster Deployment](./doc/cookbook/multi-node-cluster.md) - How to deploy multiple Easegress cluster nodes.
- [Distributed Tracing](./doc/cookbook/distributed-tracing.md) - How to do APM tracing - Zipkin.
- [FaaS](./doc/cookbook/faas.md) - Supporting Knative FaaS integration
Expand All @@ -113,7 +119,7 @@ The following examples show how to use Easegress for different scenarios.
- [MQTTProxy](./doc/cookbook/mqtt-proxy.md) - An Example to MQTT proxy with Kafka backend.
- [Performance](./doc/cookbook/performance.md) - Performance optimization - compression, caching etc.
- [Pipeline](./doc/cookbook/pipeline.md) - How to orchestrate HTTP filters for requests/responses handling
- [Resilience and Fault Tolerance](./doc/cookbook/resilience.md) - Circuit Breaker, Rate Limiter, Retryer, Time limiter, etc. (Porting from [Java resilience4j](https://github.com/resilience4j/resilience4j))
- [Resilience and Fault Tolerance](./doc/cookbook/resilience.md) - Circuit Break, Rate Limit, Retry, Time Limit, etc. (Porting from [Java resilience4j](https://github.com/resilience4j/resilience4j))
- [Security](./doc/cookbook/security.md) - How to do authentication by Header, JWT, HMAC, OAuth2, etc.
- [Service Proxy](./doc/cookbook/service-proxy.md) - Supporting the Microservice registries - Zookeeper, Eureka, Consul, Nacos, etc.
- [WebAssembly](./doc/cookbook/wasm.md) - Using AssemblyScript to extend the Easegress
Expand Down Expand Up @@ -213,14 +219,14 @@ The rules of routers above mean that it will lead the traffic with the prefix `/
```bash
$ echo '
name: pipeline-demo
kind: HTTPPipeline
kind: Pipeline
flow:
- filter: proxy
filters:
- name: proxy
kind: Proxy
mainPool:
servers:
pools:
- servers:
- url: http:https://127.0.0.1:9095
- url: http:https://127.0.0.1:9096
- url: http:https://127.0.0.1:9097
Expand Down Expand Up @@ -262,7 +268,7 @@ Now we want to add more features to the pipeline, then we could add kinds of fil
```bash
$ cat pipeline-demo.yaml
name: pipeline-demo
kind: HTTPPipeline
kind: Pipeline
flow:
- filter: validator
jumpIf: { invalid: END }
Expand All @@ -282,8 +288,8 @@ filters:
X-Adapt-Key: goodplan
- name: proxy
kind: Proxy
mainPool:
servers:
pools:
- servers:
- url: http:https://127.0.0.1:9095
- url: http:https://127.0.0.1:9096
- url: http:https://127.0.0.1:9097
Expand Down
22 changes: 14 additions & 8 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# Easegress

[![Go Report Card](https://goreportcard.com/badge/github.com/megaease/easegress)](https://goreportcard.com/report/github.com/megaease/easegress) [![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/megaease/easegress/Test/main)](https://github.com/haoel/easegress/actions/workflows/test.yml) [![codecov](https://codecov.io/gh/megaease/easegress/branch/main/graph/badge.svg?token=5Q80B98LPI)](https://codecov.io/gh/megaease/easegress) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/megaease/easegress)](https://github.com/haoel/easegress/blob/main/go.mod) [![Join MegaEase Slack](https://img.shields.io/badge/slack-megaease-brightgreen?logo=slack)](https://join.slack.com/t/openmegaease/shared_invite/zt-upo7v306-lYPHvVwKnvwlqR0Zl2vveA)
[![Go Report Card](https://goreportcard.com/badge/github.com/megaease/easegress)](https://goreportcard.com/report/github.com/megaease/easegress)
[![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/megaease/easegress/Test/main)](https://github.com/megaease/easegress/actions/workflows/test.yml)
[![codecov](https://codecov.io/gh/megaease/easegress/branch/main/graph/badge.svg?token=5Q80B98LPI)](https://codecov.io/gh/megaease/easegress)
[![Docker pulls](https://img.shields.io/docker/pulls/megaease/easegress.svg)](https://hub.docker.com/r/megaease/easegress)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/megaease/easegress)](https://github.com/megaease/easegress/blob/main/go.mod)
[![Join MegaEase Slack](https://img.shields.io/badge/slack-megaease-brightgreen?logo=slack)](https://join.slack.com/t/openmegaease/shared_invite/zt-upo7v306-lYPHvVwKnvwlqR0Zl2vveA)

<a href="https://megaease.com/easegress">
<img src="./doc/imgs/easegress.svg"
Expand Down Expand Up @@ -102,7 +108,7 @@

下面的例子展示了如何在不同场景下使用 Easegress。

- [API 聚合](./doc/cookbook/api-aggregator.md) - 将多个 API 聚合为一个。
- [API 聚合](./doc/cookbook/api-aggregation.md) - 将多个 API 聚合为一个。
- [Easegress 集群化部署](./doc/cookbook/multi-node-cluster.md) - Easegress 如何进行集群化多点部署。
- [分布式调用链](./doc/cookbook/distributed-tracing.md) - 如何使用 Zipkin 进行 APM 追踪。
- [函数即服务 FaaS](./doc/cookbook/faas.md) - 支持 Knative FaaS 集成。
Expand Down Expand Up @@ -212,14 +218,14 @@ rules:
```bash
$ echo '
name: pipeline-demo
kind: HTTPPipeline
kind: Pipeline
flow:
- filter: proxy
filters:
- name: proxy
kind: Proxy
mainPool:
servers:
pools:
- servers:
- url: http:https://127.0.0.1:9095
- url: http:https://127.0.0.1:9096
- url: http:https://127.0.0.1:9097
Expand Down Expand Up @@ -261,7 +267,7 @@ Body : Hello, Easegress
```bash
$ cat pipeline-demo.yaml
name: pipeline-demo
kind: HTTPPipeline
kind: Pipeline
flow:
- filter: validator
jumpIf: { invalid: END }
Expand All @@ -281,8 +287,8 @@ filters:
X-Adapt-Key: goodplan
- name: proxy
kind: Proxy
mainPool:
servers:
pools:
- servers:
- url: http:https://127.0.0.1:9095
- url: http:https://127.0.0.1:9096
- url: http:https://127.0.0.1:9097
Expand Down
10 changes: 4 additions & 6 deletions doc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ For the full document, please check - [Controller Reference](./reference/control
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](./reference/controllers.md#serviceregistry) - The service hub for all service registries - Consul, Etcd, Eureka, Zookeeper, Nacos...
- [TrafficController](./reference/controllers.md#trafficcontroller) - TrafficController handles the lifecycle of HTTPServer and HTTPPipeline and their relationship.
- [TrafficController](./reference/controllers.md#trafficcontroller) - TrafficController handles the lifecycle of TrafficGates(HTTPServer and etc.) and Pipeline and their relationship.
- [RawConfigTrafficController](./reference/controllers.md#rawconfigtrafficcontroller) - RawConfigTrafficController maps all traffic static configurations to TrafficController in the namespace `default`.

#### 4.1.2 Business Controllers
Expand All @@ -76,17 +76,15 @@ It could be created, updated, deleted by admin operation. They control various r

### 4.2 Filters

- [API Aggregator](./reference/filters.md#APIAggregator) - The API Aggregator forwards one request to multiple API HTTP Pipelines in the same namespace and aggregates responses.
- [Proxy](./reference/filters.md#Proxy) - The Proxy filter is a proxy of backend service.
- [CORSAdaptor](./reference/filters.md#CORSAdaptor) - The CORSAdaptor handles the CORS preflight request for backend service.
- [Fallback](./reference/filters.md#Fallback) - The Fallback filter mocks a response as fallback action of other filters.
- [Mock](./reference/filters.md#Mock) - The Mock filter mocks responses according to configured rules, mainly for testing purposes.
- [RemoteFilter](./reference/filters.md#RemoteFilter) - The RemoteFilter is a filter making remote service acting as an internal filter.
- [RequestAdaptor](./reference/filters.md#RequestAdaptor) - The RequestAdaptor modifies the original request according to configuration.
- [CircuitBreaker](./reference/filters.md#CircuitBreaker) - The CircuitBreaker is a finite state machine with three states: `CLOSED`, `OPEN`, and `HALF_OPEN`.
- [RateLimiter](./reference/filters.md#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.
- [TimeLimiter](./reference/filters.md#TimeLimiter) - The TimeLimiter limits the time of requests, a request is canceled if it cannot get a response in configured duration.
- [Retryer](./reference/filters.md#Retryer) - The Retryer retries failed requests according to configured policy.
- [RequestBuilder](./reference/filters.md#RequestBuilder) - The RequestBuilder build a new request from existing requests/responses.
- [ResponseBuilder](./reference/filters.md#ResponseBuilder) - The ResponseBuilder build a new response from existing requests/responses.
- [RequestAdaptor](./reference/filters.md#RequestAdaptor) - The RequestAdaptor modifies the original request according to configuration.
- [ResponseAdaptor](./reference/filters.md#ResponseAdaptor) - The ResponseAdaptor modifies the original response according to the configuration before passing it back.
- [Validator](./reference/filters.md#Validator) - The Validator filter validates requests, forwards valid ones, and rejects invalid ones.
- [WasmHost](./reference/filters.md#WasmHost) - The WasmHost filter implements a host environment for user-developed WebAssembly code.
Expand Down
Loading

0 comments on commit e4a285c

Please sign in to comment.