Gateway/简体中文
Gateway is a restful API gateway based on HTTP, which can be used as a unified API access layer.
- Traffic Control (on Server or API)
- Circuit Breaker (on Server or API)
- Load Balance
- Service Discovery
- Plugin
- Routing (Divert Traffic, Duplicate Traffic)
- API Aggregation
- API Argument Check
- API Access Control (White and Black List)
- API Default Return Value
- API Customized Return Value
- API Result Cache
- JWT Authorization
- API Metric Imports Prometheus
- API Retry After Failure
- Backend Server Health Check
- Open Management of API (GRPC、Restful)
- Websocket Support
- Online Data Migration Support
The following content requires reader some knowledge of Docker. You can refer to this book, or check out the official documentation。
Use docker pull fagongzi/gateway
command to download gateway Docker image.
docker run -d -p 9093:9093 -p 80:80 -p 9092:9092 fagongzi/gateway
initiates the container. 3 Ports are exposed:
-
80
Proxy's HTTP port, this port is for client access.
-
9092
APIServer's external GRPC port
-
9093
APIServer's external HTTP Restful port. Visit
http://127.0.0.1:9093/ui/index.html
to access the web UI.
Running parameters can be set by the following environment varaibles. Configuration overrides default.
-
GW_PROXY_OPTS
All options in
proxy --help
are supported. -
API_SERVER_OPTS
All options in
apiserver --help
are supported. -
ETCD_OPTS
All options in
etcd --help
are supported.
-
fagongzi/gateway
A quick start image, consisting of three components: etcd, proxy, apiserver,
Only intended for quick start experience. Do not use in production.
-
fagongzi/proxy
proxy component,
production ready
-
fagongzi/apiserver
apiserver component,
production ready
Available Gateway Web UI Projects:
Gateway consists of proxy
and apiserver
.
Proxy is a component which provides service to clients. Proxy is a stateless node. Multiple proxies can be deployed to handle huge traffic. More.
ApiServer provides GRPC and Restful to manage metadata for users. ApiServer integrates official Web UI. More。
A server is a a real backend service. More。
Cluster consists of servers which provide the same service. A server is chosen to handle a specific request based on a load balance strategy. More。
API is a key concept of Gateway. We can manage external APIs in Gateway and their distribution rules, aggregation rules and URL matching rules. More。
Routing is a route strategy. Cookie, Querystring, Header and Path in HTTP Request dictate traffic distribution and traffic duplication to a specific cluster. Through this feature, AB test and online traffic divertion is achieved. More。
Open source is not easy, if this project is helpful to you, you can ask me for a drink, thank you!