API 网关做为微服务架构的守护门神,重要性不言而喻。
但我在调研各大开源网关的时候,总感觉都存在着这样或者那样的问题。
apisix, kong 这样的基于 nginx 的网关,性能出众,但开发语言(c, lua)对于普通程序员算不上友好,有一定的门槛。
因此做流量网关比较合适,做业务网关却要慎重。考虑到现在 java 在微服务领域还是最主流的语言,如果业务网关用 java 来实现,方便程序员来做定制化开发或许更加友好。
但 java 领域的开源网关,也存在这不少问题,以 springCloud gateway, zuul2, shenyu 为例。
有的功能相对简陋,有的设计上存在缺陷(比如 规则引擎使用循环匹配,请求参数重复解析等),因此萌生了自己来实现一个的想法
项目取名 lion,就像**很多住宅门前的守护神石狮子一样,可以守护这我们的服务。
为了追求极致的性能,直接基于 netty 进行开发
对于等值条件优先采用哈希匹配,匹配不到的退回循环匹配