MCPcopy
hub / github.com/fagongzi/manba

github.com/fagongzi/manba @v2.9.0 sqlite

repository ↗ · DeepWiki ↗ · release v2.9.0 ↗
2,125 symbols 4,210 edges 71 files 310 documented · 15%
README

Gitter Build Status Go Report Card

Gateway

Gateway 是一个基于HTTP协议的restful的API网关。可以作为统一的API接入层。

Features

  • 流量控制(Server或API级别)
  • 熔断(Server或API级别)
  • 负载均衡
  • 服务发现
  • 插件机制
  • 路由(分流,复制流量)
  • API 聚合
  • API 参数校验
  • API 访问控制(黑白名单)
  • API 默认返回值
  • API 定制返回值
  • API 结果Cache
  • JWT Authorization
  • API Metric导入Prometheus
  • API 失败重试
  • 后端server的健康检查
  • 开放管理API(GRPC、Restful)
  • 支持websocket
  • 支持在线迁移数据

Docker

以下内容要求对docker基本操作有一定了解,可以看这本书,或者直接看官方文档

快速开始

使用 docker pull fagongzi/gateway 命令下载Docker镜像, 使用 docker run -d -p 9093:9093 -p 80:80 -p 9092:9092 fagongzi/gateway 运行镜像. 镜像启动后export 3个端口:

  • 80

Proxy的http端口,这个端口就是直接为终端用户服务的

  • 9092

APIServer的对外GRPC的端口

  • 9093

APIServer的对外HTTP Restful的端口,访问 http://127.0.0.1:9093/ui/index.html访问WEBUI

通过设置以下环境变量可以改变运行参数,参数相同时配置参数将会覆盖默认参数

  • GW_PROXY_OPTS

支持proxy --help中的所有参数;

  • API_SERVER_OPTS

支持apiserver --help中的所有参数;

  • ETCD_OPTS

支持etcd --help中的所有参数;

可用的docker镜像

  • fagongzi/gateway

镜像是一个quickstart镜像,包含了3个组件:etcd,proxy,apiserver, 仅限于快速体验,不能使用在生产

  • fagongzi/proxy

proxy组件,生产可用

  • fagongzi/apiserver

apiserver组件,生产可用

架构

WebUI

可用的Gateway的WebUI的项目: * 官方 * gateway_ui * gateway_admin_ui

组件

Gateway由proxy, apiserver组成

Proxy

Proxy是Gateway对终端用户提供服务的组件,Proxy是一个无状态的节点,可以部署多个来支撑更大的流量,更多

ApiServer

ApiServer对外提供GRPC和Restful来管理元信息,ApiServer同时集成了官方的WebUI,更多

Gateway中的概念

Server

Server是一个真实的后端服务,更多

Cluster

Cluster是一个逻辑概念,它由一组提供相同服务的Server组成。会依据负载均衡策略选择一个可用的Server,更多

API

API是Gateway的核心概念,我们可以在Gateway的中维护对外的API,以及API的分发规则,聚合规则以及URL匹配规则,更多

Routing

Routing是一个路由策略,根据HTTP Request中的Cookie,Querystring、Header、Path中的一些信息把流量分发到或者复制到指定的Cluster,通过这个功能,我们可以实现AB Test和线上引流,更多

参与开发

更多

交流方式-微信

Extension points exported contracts — how you extend this code

LoadBalance (Interface)
LoadBalance loadBalance interface returns selected server's id [2 implementers]
pkg/lb/lb.go
Filter (Interface)
Filter filter interface [2 implementers]
pkg/filter/filter.go
Client (Interface)
Client gateway client [1 implementers]
pkg/client/client.go
Store (Interface)
Store store interface [1 implementers]
pkg/store/store.go
Key (Interface)
A Key may be any value that is comparable. See http://golang.org/ref/spec#Comparison_operators
pkg/util/lru.go
Context (Interface)
Context filter context [1 implementers]
pkg/filter/filter.go

Core symbols most depended-on inside this repo

Unmarshal
called by 97
pkg/store/store_etcd.go
Marshal
called by 71
pkg/store/store_etcd.go
Get
called by 42
pkg/util/lru.go
Set
called by 31
cmd/proxy/proxy.go
String
called by 26
cmd/proxy/proxy.go
getMetaClient
called by 23
pkg/client/client.go
getNode
called by 14
pkg/client/api.go
Close
called by 14
pkg/client/client.go

Shape

Method 1,741
Function 207
Struct 143
Interface 19
TypeAlias 13
FuncType 2

Languages

Go100%

Modules by API surface

pkg/pb/rpcpb/rpcpb.pb.go827 symbols
pkg/pb/metapb/metapb.pb.go491 symbols
pkg/proxy/dispatcher_runtime.go74 symbols
pkg/client/api.go65 symbols
pkg/client/client.go55 symbols
pkg/store/store_etcd.go53 symbols
pkg/store/store.go39 symbols
pkg/proxy/dispatcher_meta.go36 symbols
pkg/util/analysis.go28 symbols
pkg/proxy/dispatcher.go28 symbols
pkg/proxy/filter.go27 symbols
pkg/filter/filter.go27 symbols

Dependencies from manifests, versioned

github.com/beorn7/perksv0.0.0-2018032116474 · 1×
github.com/boltdb/boltv1.3.1 · 1×
github.com/buger/jsonparserv0.0.0-2018031809531 · 1×
github.com/coreos/bboltv1.3.0 · 1×
github.com/coreos/etcdv0.0.0-2018061516415 · 1×
github.com/coreos/go-semverv0.2.0 · 1×
github.com/coreos/go-systemdv0.0.0-2018103108505 · 1×
github.com/coreos/pkgv0.0.0-2018092819010 · 1×
github.com/dgrijalva/jwt-gov0.0.0-2018030823130 · 1×
github.com/fagongzi/goettyv0.0.0-2018042706014 · 1×
github.com/fagongzi/grpcxv1.1.0 · 1×
github.com/fagongzi/logv0.0.0-2017083113520 · 1×

For agents

$ claude mcp add manba \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact