服务部署流程中,如何节省流量费用?

2024-05-28 16:17:25 +08:00
 yuandj

当下情况

有个项目,部署在某家上市云商中,接口大概每天 20 亿左右的请求响应,流量费用在服务器架构中占比较高,目前已经实施了 2 种优化方案,请问有没有更好的优化方案推荐?

目前已经做过的优化方案

  1. 找云商谈优惠
  2. 要求调用接口的合作商加上 gzip 压缩

暂不考虑的方案

  1. 按带宽计费(目前业务量级,按量计费/按带宽计费消耗差不多)

有想法还未实现的方案

  1. 使用 Protocol Buffers 替代 json ,和 gzip 同时使用。

请教

  1. 有没有推荐的优化方案? PS: 可以是服务部署方面 或者 流量优化方面
3798 次点击
所在节点    程序员
43 条回复
Ipsum
2024-05-28 16:29:11 +08:00
日 20 亿,恕我直言,已经打败了 99.99999%的群友了。
dragonfsky1
2024-05-28 16:33:56 +08:00
日 20 亿 还需要考虑流量费用吗,这种直接升级按口子计费的
javalaw2010
2024-05-28 16:35:08 +08:00
如果场景允许的话,先上个限流,避免下游无节制调用接口。
如果是收费接口,提高费用,下游会自己想办法做缓存。
如果场景允许静态化,那改成生成 json 文件分发到 CDN ,CDN 一般价格好谈一点。
yuandj
2024-05-28 16:39:02 +08:00
@dragonfsky1
盈利不是靠请求次数多少决定的,技术侧只能尽力减少服务成本了。
运营侧在做业务时,也得算着请求量级的营收比。
如果技术侧把服务成本做得更低,运营就有更多的施展空间。
yuandj
2024-05-28 16:42:35 +08:00
@javalaw2010
1. 业务层的限流已经做了,目前接口调用频次都在可控范围内。
2. 必须实时调用接口,在业务逻辑中,调用侧和接收侧都不允许缓存。
northbrunv
2024-05-28 16:43:11 +08:00
使用按带宽计费(不限流量)的服务器。如果你使用按流量计费的,成本很高
supersadmin
2024-05-28 16:46:00 +08:00
蹲一个解决方案。
supersadmin
2024-05-28 16:57:25 +08:00
日均 2 亿请求,之前测试使用按量计费比包月贵,现在直接包月了。
mightybruce
2024-05-28 17:05:21 +08:00
如果你们技术过硬, 可以考虑修改服务使用 HTTPP3/QUIC 协议, 要考虑云商的各个组件是否支持(尤其是负载均衡)。
HTTP3 复用 比 HTTP2 更好,也更加节省流量。

其他很多方面,托管云是做不了太多的, 看是否能够对 linux 内核参数做一些调整
vivisidea
2024-05-28 17:05:51 +08:00
是 In 流量 还是 Out 流量?我记得阿里云 ECS 绑定 外网 IP 的话,200Mbps 的 In 带宽是不收费的

Out 流量没啥办法,gzip 可以看下数据都是怎样的,测算下压缩比,有多少收益

威胁不给优惠就迁移去友商,谈优惠
xueling
2024-05-28 17:12:35 +08:00
1 、使用 snappy/gzip 实时压缩;
2 、使用枚举 ID 代替不必要的文本传输,减少类似描述信息等文本内容的传输,数值类型参数不要使用字符串,键值也可以使用 id 替代;
3 、使用字节流类型接收和返回数据,根据二进制位自定义传入和返回数据协议(最好统一封装 http 请求和解析工具类给交互方);

了解一下我的开源项目: https://github.com/xl-xueling/xl-lighthouse 实时监控接口数据传输量,便于衡量优化效果。
mightybruce
2024-05-28 17:12:59 +08:00
腾讯的张彦飞的《深入理解 Linux 网络》可以看看, 他写的文章很有深度, 这里给一个链接

https://mp.weixin.qq.com/s/-xiWjPRiRsPcxODnJ3921Q
Kinnice
2024-05-28 17:18:16 +08:00
1. 首先看看你们流量峰值和流量模型
2. 可以开低带宽计费机器来和流量计费负载均衡一下,流量计费基本是 95 ,这样负载一下可能要便宜不少
3. 接口可以改 json => grpc
4. gzip => br
matrix1010
2024-05-28 17:20:33 +08:00
要不你先说说业务是什么类型? No Silver Bullet 和 XY problem 大家都懂。具体问题具体分析,说不定直接 client side cache 一下都不用发请求
gam2046
2024-05-28 17:38:09 +08:00
这种量级,考虑一下,HTTPS 能否降级成 HTTP ,光证书流量就节约非常多。

如果计划响应结构变为 protobuf ,那么 gzip 的效果就很一般了。
duan602728596
2024-05-28 17:53:38 +08:00
什么,居然没开 gzip 吗? https 也可以尝试 br 压缩,效果更好
R4rvZ6agNVWr56V0
2024-05-28 17:54:32 +08:00
思路:
使用 Protocol Buffers 代替 JSON ,以减少数据传输量。
使用 CDN ,将静态资源和 API 响应缓存并且靠近用户交付,以降低延迟和提高响应时间。
在 API 层集成缓存机制,快速提供缓存数据,减轻后端系统负担,改善响应时间。
采用现代网络协议,如 HTTP/2 ,减少建立新连接的开销,提高网络效率。
优化数据库查询,避免检索不必要的数据,减少网络流量,提高性能。
优化日志收集,仅收集和保留必要的日志数据,优化日志分析成本。
考虑其他压缩算法,如 lz4 、snappy 或 zstd ,以提高压缩性能。
zeusho871
2024-05-28 18:08:00 +08:00
买那种大宽带机房 我这每天 20e 可能没有 几千万还是有
就那种大宽带服务器 500m 上下行拉满的 比阿里云便宜 然后作为缓存层通你你现在阿里云的服务 这样流量基本不计
如果还想便宜就移动大带宽的比电信便宜更多
zeusho871
2024-05-28 18:09:15 +08:00
@zeusho871 没看到楼下的补充。。。如果不能缓存最简单的便宜的是买 5m 的阿里云 几十台堆起来 20 台 5m 的阿里云比一台 100m 的便宜很多
tool2dx
2024-05-28 18:14:45 +08:00
@duan602728596 楼主说请求都是实时的,估计用 br 很难,这算法太慢了。

zstd 可以,gzip 也可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1044752

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX