简体中文
Manba/Manba is a restful API gateway based on HTTP, which can be used as a unified API access layer.
Tutorial
A very detailed tutorial for beginners. Link Below are video tutorials. Basics:
Alternative bilibili.com video link: https://www.bilibili.com/video/av73432556/
Routing Configuration Tutorial:
Alternative bilibili.com video link: https://www.bilibili.com/video/av73432836/
JWT Plugin Configuration Tutorial:
Alternative bilibili.com video link: https://www.bilibili.com/video/av73433002/
Attention
Please make sure your Go version is 1.10 or above. Otherwise, undefined "math/rand".Shuffle error will occur when compiling. StackOverFlow Link
Features
- 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
Docker
The following content requires reader some knowledge of Docker. You can refer to this book, or check out the official documentation。
Available Docker Images
-
fagongzi/proxy
proxy component,
production ready
-
fagongzi/apiserver
apiserver component,
production ready
Quick start with docker-compose
docker-compose up -d
Use http://127.0.0.1:9093/ui/index.html
to access apiserver
Use http://127.0.0.1
to access to your API
Architecture
Web UI
Available Manba Web UI Projects:
Components
Manba consists of proxy
and apiserver
.
Proxy
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
ApiServer provides GRPC and Restful to manage metadata for users. ApiServer integrates official Web UI. More.
Concepts of Manba
Server
A server is a a real backend service. More.
Cluster
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
API is a key concept of Manba. We can manage external APIs in Manba and their distribution rules, aggregation rules and URL matching rules. More.
Routing
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.