多实例下提升单分区单消费组速度 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时制粘贴 AI 生成的内容
Fu4ng
V2EX    程序员

多实例下提升单分区单消费组速度

  •  
  •   Fu4ng 2021 年 7 月 14 日 1701 次点击
    这是一个创建于 1664 天前的主题,其中的信息可能已经有所发展或是发生改变。
    背景
    外部团队给了一个 topic,这个 topic 只有一个分区,因为消息之间有强顺序关系。

    问题
    目前我们团队发现这个 topic 的消费速度有点慢,想优化下。

    我自己想到了两种解决办法,感觉这两种方式都不太好。

    解法 1
    基于多单消费者的基础上,自己写个线程池,并发处理消息。
    这个方法的缺点是只能有一个实例在消费消息(单消费者),无法扩展。

    解法 2
    引入 kafka, 把消息做一层转发,可以根据自己的业务逻辑做分区。
    缺点是引入了一个中间件。


    欢迎大佬们讨论
    8 条回复    2021-07-15 10:20:14 +08:00
    Fu4ng
        1
    Fu4ng  
    OP
       2021 年 7 月 14 日 via Android
    感觉第二个办法会好点?
    jimmyismagic
        2
    jimmyismagic  
       2021 年 7 月 14 日
    你这个题目得讲清楚,topic 是个啥,听样子也是个 kafka
    消费慢,得看是读取慢,还是处理慢
    Fu4ng
        3
    Fu4ng  
    OP
       2021 年 7 月 14 日
    @jimmyismagic
    是的 也是一个 kafka
    Fu4ng
        4
    Fu4ng  
    OP
       2021 年 7 月 14 日
    @jimmyismagic 是处理慢
    jimmyismagic
        5
    jimmyismagic  
       2021 年 7 月 14 日
    @Fu4ng 扩展了就能处理快吗?得看你需要扩展几个线程,如果你要扩展到几百个分区才能处理,就扩展,否则就是 1
    同时需要看一下处理是 cpu 密集型还是 io 密集型
    Fu4ng
        6
    Fu4ng  
    OP
       2021 年 7 月 14 日 via Android
    @jimmyismagic 十分感谢。很专业的解答
    billlee
        7
    billlee  
       2021 年 7 月 14 日
    我选 1, 既然写入时是一个分区,那么单线程读取也肯定没有问题。读出来再分发到处理线程就可以了。

    单机就搞个线程池,集群就搞个 flink.
    echoZero
        8
    echoZero  
       2021 年 7 月 15 日
    消息间的强顺序关系,不是所有消息都有强顺序吧,应该可以按照指定的方式来划分不同的分区吧。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4495 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 09:25 PVG 17:25 LAX 01:25 JFK 04:25
    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