目前场景是通过 API 请求返回一个数万个 openid,每个 openid 有 28 个字节,请教各位同仁怎么更快更好的 respond. 目前只是通过 Zlib::Deflate 做压缩然后再用 base64 加密。目前能减少 1/3 的数据量。先谢谢各位了
最简单的解决办法是:夹沟一下减少些请求量,或者让它不需要返回这么多
base64,会变长,这一步完全不需要,http 协议是可以直接收二进制的,收到后 zip 解压即可。
传输的时候选择 gzip 或者 deflate 就够了,不需要额外工作。
感觉问题主要在数据传输上,没好的 idea,如果有更好的压缩算法且客户支持,加个 tunnel client -> tcptun_or_kcptun ------------ tcptun_or_kcptun -> server 如果压缩比大,中间的开销可以忽略不计了。
#1 楼 @luikore 因为一个 openid 代表一个用户,这个减少不了
#2 楼 @nouse o @guange 好的,确实会长,我再看一下效果
#3 楼 @nouse 怎么选择,没搞过,能不能细说下
#8 楼 @hiveer nginx 上配置 gzip 就好了,示例 https://gist.github.com/anvyzhang/d3d0c17d5e62256fa79e gzip_comp_level可以设置到 9,最高压缩级别,但是比较慢
gzip_comp_level
#9 楼 @zhangrentian 压缩效果如何?
#10 楼 @xiaolang 效果很好
#9 楼 @zhangrentian 谢谢 👍