• Spring Cloud微服务实战 打造企业级优惠券系统 2-13 kafka Producer-Consumer核心特性


    0    课程地址

    https://coding.imooc.com/lesson/380.html#mid=28229

    1    生产者(Producer)特性
    1.1  生产者如何和topic中的分区(partition)关联

    默认情况下生产者不关心消息写入哪个分区(partition),但是如果出现特殊情况(如某个分区损坏,后台会报特定错误)也可指定写入哪个分区(非损坏的分区)。

    1.2  生产者和分区(partition)关联的方式

    通过topic+key(可以为null)+value(消息)的方式。

    不存在key,即key为null,使用默认的分区分配器,round-robin实现负载均衡;存在key,使用默认的分区分配器,对key进行hash 确定消息应该分配到哪个分区

    2    消费者(Consumer)特性
    2.1  为何kafka不会丢失消息

    消费者组读取消息时,通常订阅一个或多个topic,读取消息时,记录当前已经读取的offset,offset是持续增长的整数值。partition的每个消息都有偏移量(offset记录)。

    消费者可以根据偏移量在服务停止或者重启时不丢失消息。

    2.2  消费者和topic内的partition关联方式

    消费者组协作消费同一个topic方法,kafka能保证每个topic内的partition被消费者组内的一个消费者消费。

    a  1个消费者组包含一个消费者,消费一个topic中的4个分区, 该消费者消费全部分区

    b  1个消费者组包含两个消费者,消费一个topic中的4个分区,   两个消费者平均随机消费两个不同的分区

    c  1个消费者组包含4个消费者,消费一个topic中的4个分区,4个消费者平均随机消费一个不同的分区

    d  1个消费这组包含5个消费者,消费一个topic中的4个分区,4个消费者平均随机消费一个不同的分区,第5个消费者处于空闲状态(注意消费者组的消费者个数应小于等于partition个数,避免资源浪费)

    e  2个消费者组消费一个topic中的4个分区,每个消费者组是独立消费,并不和其他消费者组关联

     

     

    3    其余知识点
    3.1  kafka常见客户端

    生产者

    消费者

    高级的客户端如 流式处理的stream,connectAPI。其底层同样是生产者和消费者

  • 相关阅读:
    GDUFE ACM-1093
    GDUFE ACM-1088
    GDUFE ACM-1069
    GDUFE ACM-1051
    GDUFE ACM-1049
    GDUFE ACM-1046
    GDUFE ACM-1045
    GDUFE ACM-1043
    OpenCV学习(7.12)
    OpenCV学习(7.11)
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/14227722.html
Copyright © 2020-2023  润新知