dinstone / agate

Agate is a cloud-native, fast, scalable, and async API Gateway.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduce

Agate is a cloud-native, fast, scalable, and async API Gateway. its core values are high performance and extensibility.

Dependency

  • Vert.x 4.3
  • Consul 1.7

Quick start

Startup gateway and admin

  • step1: pull source and build
git pull https://github.com/dinstone/agate.git

// build
cd agate
mvn clean package
  • step2: start agate admin and gateway
cd agate/agate-admin-api
mvn exec:java -Dexec.mainClass=io.agate.admin.AgateAdminApplication

cd agate/agate-gateway
mvn exec:java -Dexec.mainClass=io.agate.gateway.verticle.LaunchVerticle
  • step3: test agate admin and gateway services
access agate admin using username/password = agate/123456 by url http://localhost:8888/	

Config Route and Url rewrite

  • Http URL Proxy:
http://localhost:4004/(?<url>.*) --> https://www.baidu.com/:url
  • Http Microservice Discovery:
http://localhost:4002/user-provider/(?<url>.*) --> http://user-provider/:url

Feature

  • Logging
  • Tracing
  • Metrics
  • Rate Limit
  • Circuit Breaker
  • Gray Deployment
  • Security Authenticate
  • Routing: Http Reverse Proxy
  • Routing: Http Service Discovery

Architecture

System Architecture

Other Documents

goto wiki https://github.com/dinstone/agate/wiki

About

Agate is a cloud-native, fast, scalable, and async API Gateway.

License:Apache License 2.0


Languages

Language:Java 97.5%Language:PLpgSQL 1.0%Language:HTML 0.9%Language:JavaScript 0.3%Language:Dockerfile 0.2%Language:CSS 0.1%Language:Shell 0.0%Language:Batchfile 0.0%