文档:https://gitee.com/lazeyliu/apisix/blob/master/doc/README_CN.md
对比:
正常的服务访问:host/path——> lvs:80——>nginx——>upstream——>具体服务代码的逻辑执行——>返回
改apisix的访问:(路由层面)host/path——> lvs:80——>解析到9080(网关层)——>代理到nginx或服务直接的端口(类似upstream的作用)——>检测插件,若有执行插件逻辑——>具体服务代码的逻辑执行——>返回
实现:
1、先有一个配置平台来配置路由或插件等,apisix自己有配置平台,但是生产环境自己写一个配置平台或限制ip访问
2、新增路由,并在路由添加插件,新增时调用了网关服务对应的9080/apisix/admin/...的put接口,这一步就会把表单中的信息注册到etcd中(这个类似redis的存储,kv形式的)
3、对应的网关服务会从etcd上拉取存储的配置,检测到对应的route中有插件,取插件的属性值,然后自己会提前写好插件的逻辑代码,去执行插件逻辑
4、ssl证书,动态的给客户端分发证书
测试:
功能测试:刚开始没看懂这个流程,后续看了开发的代码才明白,所以重要的就是插件的作用,明白插件是干嘛的进行对应的功能测试即可,测试过程中有看不明白的可以让开发set一些header或者多写一些log
性能测试:diff三种不同访问方式,之前的直接nginx访问,网关代理到nginx,以及网关代理到直接的服务端口,最后发现网关直接代理到服务端口的效果最好,接口的参数当时用的是线上nginx日志跑的,可以根据自己的业务看~