说明:
看qimi-gin框架源码解析部分收获
一、 Gin框架路由详解
1.2 Redix树介绍
基数树,trie树
使用的是定制版本的httprouter,其路由的原理是大量使用公共前缀的树结构
基数树(Radix Tree)又称为PAT位树(Patricia Trie or crit bit tree),是一种更节省空间的前缀树(Trie Tree)
前缀树-Trie Tree——Redix Tree(基数树)
路由器为每种请求方法管理一棵单独的树,get,post等各有一个树
为了获得更好的可伸缩性,每个树级别上的子节点都按Priority(优先级)
排序,其中优先级(最左列)就是在子节点(子节点、子子节点等等)中注册的句柄的数量。这样做有两个好处:
- 首先优先匹配被大多数路由路径包含的节点。这样可以让尽可能多的路由快速被定位。
- 类似于成本补偿。最长的路径可以被优先匹配,补偿体现在最长的路径需要花费更长的时间来定位,如果最长路径的节点能被优先匹配(即每次拿子节点都命中),那么路由匹配所花的时间不一定比短路径的路由长。下面展示了节点(每个
-
可以看做一个节点)匹配的路径:从左到右,从上到下。
1.3 请求处理
通过小绿标,学会下边,顺藤摸瓜
结构体——接口——方法