请教个几个接口统计,任务队列相关的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
n3541
V2EX    问与答

请教个几个接口统计,任务队列相关的问题

  •  
  •   n3541 2018-09-16 11:52:06 +08:00 1934 次点击
    这是一个创建于 2621 天前的主题,其中的信息可能已经有所发展或是发生改变。

    web 服务器提供几个接口给客户进行调用,然后,我这边需要统计每个接口的调用次数,并记录每次处理后的结果,哪个客户调用的。

    目前有两个做法:

    1. 直接在接口处理完业务逻辑之后,直接生成一条数据,插入到对应表中。这样每调用一次都需要插入一条数据。调用次数很频繁的情况下,会不会影响性能?

    2. 对于接口调用次数频繁的情况下,目前采用把统计数据,push 到任务队列里,然后另外启动 worker 定时去存放这些统计数据。(目前采用 celery 或者 rq )但是这样又有一个问题,每次运行 worker 的时候,只能处理一条数据,于是,我在 worker 中想把每条统计数据再次存放到 redis 队列中,然后每次都去查询 reids 相关队列中的长度,等到长度达到一定长度,再做批量插入。

    3. 在类似 celery,rq 任务队列中,传递图片数据是怎么处理的?直接传递图片 base64 之后的数据?还是传递地址,然后 worker 去下载再处理?

    能说说这两种方法的优缺点吗?还有其他更好的方法吗?

    PS:本身提供的服务中业务逻辑不需要有数据库相关的操作包括(增删改查)

    感谢!!

    5 条回复    2018-09-16 14:35:00 +08:00
    kslr
        1
    kslr  
       2018-09-16 14:19:26 +08:00 via Android
    首先看你的规模,大部分都可以直接怼
    第二可以批量获取,第三还是看规模以及文件系统设计和文件类型
    初步考虑存储文件而不是编码,这样灵活度更大一点
    kslr
        2
    kslr  
       2018-09-16 14:21:37 +08:00 via Android
    Celery Rabbitnq 完全是两个级别的工具,如果你一天只有几十万硬怼毫无问题
    kslr
        3
    kslr  
       2018-09-16 14:22:23 +08:00 via Android
    不过也看请求分布时间段是否集中,总之是完全看业务的
    DCjanus
        4
    DCjanus  
       2018-09-16 14:26:32 +08:00 via Android
    直接插表理论上影响不是很大,纯日志类的表没有太多冲突、计算、iO,直接插就好了,除非你量大的超出常规。
    DCjanus
        5
    DCjanus  
       2018-09-16 14:35:00 +08:00 via Android
    数据库负担大的扛不住再考虑消息队列削峰填谷,一条条写都扛不住再考虑写合并,要是连写合并都扛不住,你就该考虑分布式日志系统了。
    但我觉得直接写数据库就能满足你需求了,先做个最简单的然后三倍日常峰值负载测试一下,满足需求就好了,折腾太多徒增烦恼。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5332 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 08:44 PVG 16:44 LAX 00:44 JFK 03:44
    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