我们公司的线下网关系统支撑了线上多个业务,每天要处理数百万条消息,数据传输格式使用的是http/json格式 ,经常面临着消息发送时间太长的问题,最近一位资深工程师想出了一个简单的优化方法:
1、先把要传输的json字符串进行gzip压缩
2、把压缩后的二进制串进行base64编码
3、把base64编码后的数据放入原来协议的json结构中
在线下系统配合修改之后,实际测试了下平均可以获得5-10倍的压缩率,因为原先的json协议中经常要传输对象数组,对象的key很多都是重复的使用gzip压缩后效果非常明显;由于原先的http/json 通路只接收可打印字符,所以只能进行base64编码,数据会再增大30%