APISIX 初体验

APISIX和KONG都是基于OpenResty开发的API网关,从目前看到的资料来看,APISIX的性能要好一些。

OpenResty在nginx上增加动态脚本能力(Lua),主要是解决了nginx修改配置后必须reload的问题。这个耗时以秒计,而OpenResty是动态脚本,耗时就是一次admin api 请求,几毫秒。看官方的文档,一直在强调“同步非阻塞”,既可以充分利用nginx的非阻塞I/O模型,又能享受同步编程的简便性,也就是代码看上去就是同步执行代码,很好理解和开发,但其实执行是非阻塞的效率很高。同步非阻塞的开发体验应该是优于node.js的,只是javascript更流行。事实上nginx也被OpenResty启发,尝试在nginx上增加javascript来实现OpenResty类似的能力,但也没火起来。
参考:OpenResty的现状、趋势、使用及学习方法
参考:从openresty谈到rust

我按APISIX官方的文档用docker-compose的方式进行了简单尝试,发现APISIX还是非常重的,如果在API管理上没有很强的需求,没有必要使用APISIX。个人的体会,需要借助OpenResty的动态配置能力来实现业务的场景,才需要使用OpenResty或者更强(更复杂)的APISIX和KONG。

TODO: OpenResty值得研究一下