/lion-gateway

api gateway

Primary LanguageJavaApache License 2.0Apache-2.0

lion-gateway

背景

API 网关做为微服务架构的守护门神,重要性不言而喻。

但我在调研各大开源网关的时候,总感觉都存在着这样或者那样的问题。

apisix, kong 这样的基于 nginx 的网关,性能出众,但开发语言(c, lua)对于普通程序员算不上友好,有一定的门槛。

因此做流量网关比较合适,做业务网关却要慎重。考虑到现在 java 在微服务领域还是最主流的语言,如果业务网关用 java 来实现,方便程序员来做定制化开发或许更加友好。

但 java 领域的开源网关,也存在这不少问题,以 springCloud gateway, zuul2, shenyu 为例。

有的功能相对简陋,有的设计上存在缺陷(比如 规则引擎使用循环匹配,请求参数重复解析等),因此萌生了自己来实现一个的想法

项目取名 lion,就像**很多住宅门前的守护神石狮子一样,可以守护这我们的服务。

设计**

为了追求极致的性能,直接基于 netty 进行开发

规则引擎

对于等值条件优先采用哈希匹配,匹配不到的退回循环匹配

使用