V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
sniperking1234
V2EX  ›  Kafka

kafka 性能问题: kafka 传递海量小数据的时候,需要合并数据发送吗

  •  
  •   sniperking1234 · Nov 21, 2023 · 4269 views
    This topic created in 898 days ago, the information mentioned may be changed or developed.

    对 kafka 不了解,求助下 v 友。

    场景是有很多小数据需要通过 kafka 发送,每条数据的量不到 1kb ,但是高峰期数量很多,这种情况下,小数据会不会影响 kafka 性能,需要把数据合并成数组,批量发送吗。kafka 在哪种情况下性能会好一些呢。

    13 replies    2024-02-21 21:46:40 +08:00
    bthulu
        1
    bthulu  
       Nov 21, 2023   ❤️ 1
    不需要, kafka 永远值得你相信
    sampdoria
        2
    sampdoria  
       Nov 21, 2023
    不用
    关于 Kafka 的 IO ,可以看一下这篇 https://juejin.cn/post/7068090666969989151
    sighforever
        3
    sighforever  
       Nov 21, 2023
    我记得 kafka 的客户端本来就会合并发送
    BBCCBB
        4
    BBCCBB  
       Nov 21, 2023
    没有提供批量的 api, 但通过 linger.ms 和 batchSize 配置, kafka client 默认就是批量的..
    sniperking1234
        5
    sniperking1234  
    OP
       Nov 21, 2023
    @bthulu @sampdoria 多谢,我去看下相关资料
    sniperking1234
        6
    sniperking1234  
    OP
       Nov 21, 2023
    @sighforever 对,是有相关的参数,但是不清楚内部处理小数据会不会影响性能
    lessMonologue
        7
    lessMonologue  
       Nov 21, 2023
    不需要,client 会自己处理成 bantch 发送
    fxbing
        8
    fxbing  
       Nov 21, 2023
    只要别指定顺序 key 就行,默认按 key 分配分区,如果不同消息不同 key 就会导致攒不了 batch
    yosoroAida
        9
    yosoroAida  
       Nov 21, 2023
    好像 client 默认情况下每隔一秒就 batch 发送
    vincent7245
        10
    vincent7245  
       Nov 21, 2023
    1 生产者和消费者客户端都是可以设置批量大小的,而且默认就是小批量发送和接收的,你可以查一下官方文档
    2 kafka 服务本身是有 cache 的,只要消费及时,数据是直接走内存的,没有磁盘 IO 性能问题。
    3 网络 IO 取决于你的机器性能,不过一般的场景不会有性能问题,至少我们 TB 级的数据量都还没遇到过性能瓶颈
    CEBBCAT
        11
    CEBBCAT  
       Nov 21, 2023
    如有疑惑,可以压测。(也许是个实践压测的好机会?
    sniperking1234
        12
    sniperking1234  
    OP
       Nov 21, 2023
    bronyakaka
        13
    bronyakaka  
       Feb 21, 2024
    你不用合并,producer 通常自己会按批发送,你这种情况可以配置批次 size 大些,等待久些,从而优化吞吐。

    (推荐一下我的 kafka gui 客户端,非常好用: https://github.com/Bronya0/Kafka-King/)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1124 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 17:58 · PVG 01:58 · LAX 10:58 · JFK 13:58
    ♥ Do have faith in what you're doing.