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

xiaolang · 发布于 2017年1月09日 · 最后由 hiveer 回复于 2017年1月14日 · 452 次阅读
96

目前场景是通过API请求返回一个数万个openid,每个openid有28个字节,请教各位同仁怎么更快更好的respond. 目前只是通过Zlib::Deflate做压缩然后再用base64加密。目前能减少1/3的数据量。先谢谢各位了

共收到 11 条回复
2880
luikore · #1 · 2017年1月10日 1 个赞

最简单的解决办法是: 夹沟一下减少些请求量, 或者让它不需要返回这么多

96
guange · #2 · 2017年1月10日

base64,会变长,这一步完全不需要,http协议是可以直接收二进制的,收到后zip解压即可。

775
nouse · #3 · 2017年1月10日

传输的时候选择gzip或者deflate就够了,不需要额外工作。

9442
flowerwrong · #4 · 2017年1月10日

感觉问题主要在数据传输上,没好的idea,如果有更好的压缩算法且客户支持,加个tunnel client -> tcptun_or_kcptun ------------ tcptun_or_kcptun -> server 如果压缩比大,中间的开销可以忽略不计了。

96
xiaolang · #5 · 2017年1月11日

#1楼 @luikore 因为一个openid代表一个用户,这个减少不了

96
xiaolang · #6 · 2017年1月11日

#2楼 @nouse o @guange 好的,确实会长,我再看一下效果

7楼 已删除
6829
hiveer · #8 · 2017年1月13日

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

5767
zhangrentian · #9 · 2017年1月13日

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

96
xiaolang · #10 · 2017年1月13日

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

5767
zhangrentian · #11 · 2017年1月14日

#10楼 @xiaolang 效果很好

6829
hiveer · #12 · 2017年1月14日

#9楼 @zhangrentian 谢谢 👍

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