api 接口如何做到毫秒级响应?

2019-07-09 16:02:24 +08:00
 shuAS

如题,向各位前辈咨询一下

10190 次点击
所在节点    程序员
41 条回复
dongrenwen
2019-07-09 16:07:55 +08:00
可以用钱解决,顶级的服务器和网络线路,高度优化的代码
shawndev
2019-07-09 16:10:40 +08:00
localhost
dobelee
2019-07-09 16:11:08 +08:00
网络质量
服务器性能
业务逻辑
框架复杂度
依赖外部资源的服务质量
一个一个解决。
guokeke
2019-07-09 16:11:30 +08:00
设置 timeout=1ms 毫秒级超时响应。
learningman
2019-07-09 16:11:54 +08:00
用低级语言写,比如用汇编写 qwq
ys1992
2019-07-09 16:14:59 +08:00
别想了,除非接口数据不经过 MySQL 这种数据库,不然数据量大一点光 SQL 查询就得几十上百毫秒了
liuzhedash
2019-07-09 16:16:59 +08:00
公网上个位数毫秒不太可能。几个优化建议:
1、dns 查询的时间是不稳定的,有时候甚至可能根本查不到,所以一定要做 dns 预解析
2、任何系统部署在 ssd 上都会有直接的性能提升
剩下就是网络、代码逻辑、数据库层面的优化了,这个没什么通用方案。
silencefent
2019-07-09 16:17:17 +08:00
hello word
lzxz1234
2019-07-09 16:21:24 +08:00
分场景,如果是查询接口,数据异步扔缓存,接口只查缓存,毫秒级压力不大
xiaopengzi
2019-07-09 16:26:16 +08:00
楼上老哥 设置 1ms 超时响应确实是个好主意。。100%空手接白 ~额不对 100%毫秒级响应
---
响应时间越低,需要付出得人力和资源成本增长越陡
azh7138m
2019-07-09 16:26:33 +08:00
@liuzhedash 每个市一个机房勉强可以个位数毫秒,这就要求钱加足了(
不过楼主应该指 1s 以内的意思吧
不过没有场景也没有 mvp 也没有数据量
这种就叫开放式吹*吧
knightgao2
2019-07-09 16:35:52 +08:00
做缓存
yulitian888
2019-07-09 16:36:09 +08:00
什么用途 /性质 /功能的 API ?
一个请求的毫秒级响应还是并发请求的毫秒级响应?
嘛都不说,没头没脑的问题,没法答
影响程序相应的最大瓶颈一般都是 IO。一般而言 IO 速度最慢的顺序是:网络>HDD>SSD>RAM>寄存器,自己分析哪块是你的 API 瓶颈,再具体想办法优化就是了。

不过我也见过有些啼笑皆非的负优化。
某人企图用 Redis 提升查询性能,但是把 Redis 部署在局域网另一台机器上。好巧不巧的是,路由器上被人插了一个百兆设备(路由器自适应降速到百兆了),然后在这个“百兆局域网”里的 Redis 不光没能提速,反而降速了。
janus77
2019-07-09 16:40:53 +08:00
那位大人呢,还没来吗
lihongjie0209
2019-07-09 16:45:02 +08:00
1. 把数据库打包发送给客户
2. 把数据库的数据都加载到内存
3. 起一个本地服务器
4. 访问接口
Tomorrowxxy
2019-07-09 16:58:38 +08:00
花钱
Tomorrowxxy
2019-07-09 16:58:46 +08:00
花大钱
Windelight
2019-07-09 17:05:34 +08:00
一,网络延迟,加钱整买网、买 DNS 解决
二,硬件反应,加钱买服务器、买 SSD、买交换机解决
三,软件逻辑,加钱买程序员、少查询、多缓存解决
starsriver
2019-07-09 17:08:04 +08:00
毫秒是不可能的,延迟主要发生在网络上面。就算计算机一毫秒处理完了数据,但是传输是个问题:等待、接收报文、应答都需要时间。

目前能够实现低延迟的只有硬件级别的 api,比如 gpu 和 fpga。
starsriver
2019-07-09 17:09:32 +08:00
接上 fpga 的延迟是皮秒级别的。

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

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

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

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

© 2021 V2EX