Gateway 是一个基于HTTP协议的restful的API网关。可以作为统一的API接入层。
如果你是一个初学者,那么这个详细的教程非常适合你。现在只有英文版本。
请确保你的Go版本是在1.10或者之上。用1.10之前版本的Go编译时会出现undefined "math/rand".Shuffle错误。StackOverFlow链接
以下内容要求对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
中的所有参数;
fagongzi/gateway
镜像是一个quickstart镜像,包含了3个组件:etcd,proxy,apiserver, 仅限于快速体验,不能使用在生产
fagongzi/proxy
proxy组件,生产可用
fagongzi/apiserver
apiserver组件,生产可用
可用的Gateway的WebUI的项目:
Gateway由proxy
, apiserver
组成
Proxy是Gateway对终端用户提供服务的组件,Proxy是一个无状态的节点,可以部署多个来支撑更大的流量,更多。
ApiServer对外提供GRPC和Restful来管理元信息,ApiServer同时集成了官方的WebUI,更多。
Server是一个真实的后端服务,更多。
Cluster是一个逻辑概念,它由一组提供相同服务的Server组成。会依据负载均衡策略选择一个可用的Server,更多。
API是Gateway的核心概念,我们可以在Gateway的中维护对外的API,以及API的分发规则,聚合规则以及URL匹配规则,更多。
Routing是一个路由策略,根据HTTP Request中的Cookie,Querystring、Header、Path中的一些信息把流量分发到或者复制到指定的Cluster,通过这个功能,我们可以实现AB Test和线上引流,更多。
开源不易,如果这个项目对你有帮助,你可以请我喝一杯,谢谢!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。