Skip to content

Commit

Permalink
readme
Browse files Browse the repository at this point in the history
  • Loading branch information
wanghongfei committed Jun 1, 2018
1 parent a0e6ba9 commit 5a93e0b
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ GoGate使用FastHttp库收发HTTP请求。
- 请求路由、路由配置热更新
- 负载均衡
- 灰度发布(基于Eureka meta信息里的version字段分配流量)
- 微服务粒度的QPS控制
- 微服务粒度的QPS控制(有基于内存的令牌桶算法限流和Redis + Lua限流两种可选)
- 微服务粒度的流量统计(暂时实现为记录日志到/tmp目录下)

初步测试了一下性能,结论如下:
Expand Down Expand Up @@ -177,9 +177,24 @@ traffic:
enableTrafficRecord: true
# 流量日志文件所在目录
trafficLogDir: /tmp
redis:
# 是否使用redis做限速器
enabled: true
# 目前只支持单实例, 不支持cluster
addr: 127.0.0.1:6379
# 限速器lua代码文件
rateLimiterLua: lua/rate_limiter.lua
```



## 限流器

gogate有两个限流器实现, `MemoryRateLimiter`和`RedisRateLimiter`,通过`gogate.yml`配置文件里的`redis.enabled`控制。前者使用令牌桶算法实现,适用于单实例部署的场景;后者基于 Redis + Lua 实现,适用于多实例部署。但有一个限制是目前Redis只支持连接单个实例,不支持cluster。



## 流量日志

gogate会记录过去`1s`内各个微服务的请求数据,包括成功请求数和失败请求数,然后写入`/tmp/{service-id}_yyyyMMdd.log`文件中:
Expand Down

0 comments on commit 5a93e0b

Please sign in to comment.