密集型(https)api 请求的技术栈?

2017-11-09 16:07:46 +08:00
 xoxoj

举个例子,如果业务需求是对一个( https)api 接口,进行密集型请求,例如每秒请求一次,该用什么技术栈比较好?( Twisted? Nodejs? Go?)

2002 次点击
所在节点    问与答
21 条回复
kslr
2017-11-09 16:09:56 +08:00
每秒一次一天也只有 86400 次.....随便都好啦,瓶颈还是在其他地方。
xoxoj
2017-11-09 16:11:24 +08:00
@kslr 我不是个随便的人儿.....
hgc81538
2017-11-09 16:13:20 +08:00
@kslr 應該是每用戶每秒请求一次, 如果多用戶就 GG
coderfox
2017-11-09 16:13:28 +08:00
选哪个都无所谓的。Node 和 Go 没多大差距,Twisted 没写过。绝大多数代码都不会因为运行时影响性能,而且你这三个选型还都有 GC,差距不大。

不过既然这样设计,是轮询吗?轮询的话可以改成 WebSocket。

如果是数据变动不频繁的,可以加缓存降低一下数据库压力。
xoxoj
2017-11-09 16:14:46 +08:00
@coderfox 问题是我们要请求的对象,他并不支持 websocket,只提供 https 接口!
wellsc
2017-11-09 16:15:15 +08:00
Elixir
zhs227
2017-11-09 16:17:19 +08:00
一秒钟一次,是你请求对方,只要对方不爆掉,好像你说的三种都可以做到,而且不会存在多大区别
xoxoj
2017-11-09 16:18:05 +08:00
@coderfox 数据库的话,这个没问题,我们用了 kafka。我问这个问题是初衷是:

1、更快的能得到 https 的响应。(相对而言)
2、能请求的地址更多,例如:
api.xxx.com/public/timeline.json
api.xxx.com/public/friends.json
api.xxx.com/public/news.json
....................
.............
......
eastpiger
2017-11-09 16:18:55 +08:00
变动不多上缓存,
实时性能用的话用 socket,
读写差距大的话做读写分离,然后读就可以上缓存了,
钱多当然直接堆机器用负载均衡
xoxoj
2017-11-09 16:19:15 +08:00
@zhs227 对方爆不爆,那不是我该管的事儿,我就是要最快速度得到响应结果。
xoxoj
2017-11-09 16:20:09 +08:00
@all 注意: 不是别人请求我,是我去撸别人!!!!
xoxoj
2017-11-09 16:20:42 +08:00
@wellsc erlang 不会~~~
hcymk2
2017-11-09 16:23:01 +08:00
这不就是个爬虫问题了么?
记得设计合理的超时时间。
xoxoj
2017-11-09 16:23:04 +08:00
我有个思路,但是不知道可不可行,在传统 c++领域的话,有个复用的概念。

所以我想 https 请求也是基于 tcp 的啊,那么既然是 tcp,是不是可以复用请求链接呢?

那这样的话,就不需要每次请求都去握几次手了。。。

然后这样的情况下,会不会快很多?!
xoxoj
2017-11-09 16:23:45 +08:00
@hcymk2 不完全是,但也接近吧。
momocraft
2017-11-09 16:28:44 +08:00
一般就是有复用的,tcp 和 tls session 都有
gamexg
2017-11-09 16:54:39 +08:00
@xoxoj 靠谱的 http 库都带 tcp 连接复用。
fuxkcsdn
2017-11-09 21:17:30 +08:00
撸别人的话,你应该考虑的是 ip 代理池,除非对方允许你撸(即使允许你撸,应该也会做流量限制)
ryd994
2017-11-09 22:36:25 +08:00
你为什么不和对方商量好呢?
xoxoj
2017-11-09 23:09:01 +08:00
@ryd994 因为这个“对方”,太多了,没法一一跟他们去谈啊。

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

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

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

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

© 2021 V2EX