字节Faas学习笔记(四)Faas MQ触发器实践

456 阅读1分钟

学习资料:bytedance.feishu.cn/file/boxcne…

  • 什么是MQ

    • image-20221202174428110

    • 什么是rebalance?

      • 原来消费者->partition,但新消费者进来后,怎么进行rebalance
    • 消费者组

      • 一组消费者共享一个group id,一个消息只会被一组里的某一个消费者消费。
    • 什么是Partition?

      • 一个topic里可以有多个partition
  • 界面

    • image-20221202174913419
    • image-20221202174923533
    • image-20221202174936297
  • MQ Trigger Design 系统架构设计

    • image-20221202175252585

    • 如何提高单个partition的mq 吞吐量?

      • 一个consumer多个线程消费

        • ack就是告诉mq我这条消息以及之前的消息都已经消费完了

          • 问:那这个问题怎么解决?

            • 维护一个双向链表:当自己以及之前的消息都消费完了,再ack

              • image-20221203220232224
      • faas消费者弹性伸缩后,如何限制每个消费者的limit?

        • 从dispatcher里看到有多少个faas实例,然后进行均分
        • v2架构:limit不同qps的partition- - - - -
          image-20221204170446890
      • 当MQ rebalance时如何Avoid Stopping the world

        • image-20221204170718728
        • image-20221204170739311
      • 一键生成一个MQ消费者

        • Request Permission & Resetting Offset
        • image-20221204170820941
      • 如何减少没必要的消息处理

        • 比如99%的消息可以直接丢掉
        • plugin filter,基于go的go plugin
      • ops Practice

        • 运维泛化
        • 智能诊断
        • image-20221204171621297