Agate 是一个快速、动态可扩展的异步API网关。
软件架构
Agate由2部分组成:
Agate-Manager:
管理API的定义、配置信息,将这些信息持久化到数据库中,同时将要发布的API配置推送到Consul中。
为了快速原型,当前使用spring mvc + jsp页面来实现的UI页面,功能实现比较糙,有待改进。
Agate-Gateway:
监听Consul中API配置的变更,执行API的部署和启停,同时接受API客户端的请求,并根据API定义做路由处理,期间会执行日志、限流、熔断、认证、缓存等增强处理。
Gateway使用了Vert.x框架,全异步流程处理,抽象了BeforeHandler、RouteHandler、AfterHandler、FailureHandler处理过程。
系统依赖
Vert.x 4.0 和 Consul 1.7
特性列表
黑白名单 BlackWhiteList 待实现
流量限制 RateLimit 已实现
日志 Logging 已实现
追踪 Tracing 已实现
度量 Metrics 已实现
安全 Security 待实现
熔断 CircuitBreaker 已实现
灰度发布 GrayDeployment 待实现
路由 Routing 已实现
评论