Ruby 网络请求长字符串有没有什么方法压缩?

xiaolang · 2017年01月09日 · 最后由 hiveer 回复于 2017年01月14日 · 2321 次阅读

目前场景是通过 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 好的,确实会长,我再看一下效果

7 楼 已删除

#3 楼 @nouse 怎么选择,没搞过,能不能细说下

#8 楼 @hiveer nginx 上配置 gzip 就好了,示例 https://gist.github.com/anvyzhang/d3d0c17d5e62256fa79e gzip_comp_level可以设置到 9,最高压缩级别,但是比较慢

#9 楼 @zhangrentian 压缩效果如何?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号