图上的transform写错了 而是transaction
很显然 设置了cache-key后得查cache 所以得启remapInit操作
感觉这个插件案例是一个分水岭 用到了example里基本的东西
但核心还是1 TSPluginInit负责启 read_req阶段的判断 捕获参数 而后 又启一个协程把2/3/4事件钩上去
从而两个协程的回调不断轮序相应的事件
抛开机制 说一下原理:
!!!首先traffic server不支持range和206!!!
因为大量的range请求会造成磁盘大量IO负载(IO等待) 这是因为存储内容分布在单独的一个stripes里
所以还是把不同的range内容做成不同的单独的存储对象 这些对象就均匀的分布在多个stripes里 可减少磁盘IO请求
用户请求带range时 我们的处理是把range变成key
再发送源请求(假设源站支持range请求) 返回206修改为200
若源站不支持range请求则返回的是全部内容并返回200
则将全部文件进行修剪 这就是另外一个插件了