密集型(https)api 请求的技术栈? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xoxoj
V2EX    问与答

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

  •  
  • /li>
  •   xoxoj 2017-11-09 16:07:46 +08:00 2464 次点击
    这是一个创建于 2906 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    如果是数据变动不频繁的,可以加缓存降低一下数据库压力。
    xoxoj
        5
    xoxoj  
    OP
       2017-11-09 16:14:46 +08:00
    @coderfox 问题是我们要请求的对象,他并不支持 websocket,只提供 https 接口!
    wellsc
        6
    wellsc  
       2017-11-09 16:15:15 +08:00
    Elixir
    zhs227
        7
    zhs227      2017-11-09 16:17:19 +08:00
    一秒钟一次,是你请求对方,只要对方不爆掉,好像你说的三种都可以做到,而且不会存在多大区别
    xoxoj
        8
    xoxoj  
    OP
       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
        9
    eastpiger  
       2017-11-09 16:18:55 +08:00
    变动不多上缓存,
    实时性能用的话用 socket,
    读写差距大的话做读写分离,然后读就可以上缓存了,
    钱多当然直接堆机器用负载均衡
    xoxoj
        10
    xoxoj  
    OP
       2017-11-09 16:19:15 +08:00
    @zhs227 对方爆不爆,那不是我该管的事儿,我就是要最快速度得到响应结果。
    xoxoj
        11
    xoxoj  
    OP
       2017-11-09 16:20:09 +08:00
    @all 注意: 不是别人请求我,是我去撸别人!!!!
    xoxoj
        12
    xoxoj  
    OP
       2017-11-09 16:20:42 +08:00
    @wellsc erlang 不会~~~
    hcymk2
        13
    hcymk2  
       2017-11-09 16:23:01 +08:00
    这不就是个爬虫问题了么?
    记得设计合理的超时时间。
    xoxoj
        14
    xoxoj  
    OP
       2017-11-09 16:23:04 +08:00
    我有个思路,但是不知道可不可行,在传统 c++领域的话,有个复用的概念。

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

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

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

    我在韩国、日本、香港、美国,都已经布好集群了,每个集群 10 台机器。先试试水
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2525 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 12:12 PVG 20:12 LAX 05:12 JFK 08:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86