• kafka(一)


    图片来源网络

    1.创建topic

    # 登录到容器
    docker exec -it kafka1 bash  
      
    //创建一个topic,名称为test_kafka,partitions为2个,replication有3个,topic的name为test2:
    kafka-topics --zookeeper zk1:2181,zk2:2181,zk3:2181 --replication-factor 3 --partitions 2 --create --topic test_kafka .
    
    //查看topic
    kafka-topics --zookeeper zk1:2181,zk2:2181,zk3:2181 --describe --topic test_kafka
    

    2.启动三组go消费者

    #第一组只有一个消费者
    go run consumer.go -g t0
    //第二组有两个消费者
    go run consumer.go -g t1
    go run consumer.go -g t1
    //第三组有三个消费者
    go run consumer.go -g t2
    go run consumer.go -g t2
    go run consumer.go -g t2
    

    3.启动go生产者

    # 分别输入 1,2,3,4,5,6,7,8,9
    

    4.第一组消费者输出

    2019/12/22 15:08:54 msg content:topic=test_kafka,partition=0,offset=12,content=1
    2019/12/22 15:09:03 msg content:topic=test_kafka,partition=1,offset=12,content=2
    2019/12/22 15:09:12 msg content:topic=test_kafka,partition=0,offset=13,content=3
    2019/12/22 15:09:21 msg content:topic=test_kafka,partition=1,offset=13,content=4
    2019/12/22 15:09:30 msg content:topic=test_kafka,partition=0,offset=14,content=5
    2019/12/22 15:09:30 msg content:topic=test_kafka,partition=0,offset=15,content=7
    2019/12/22 15:09:30 msg content:topic=test_kafka,partition=1,offset=14,content=6
    2019/12/22 15:09:39 msg content:topic=test_kafka,partition=0,offset=16,content=9
    2019/12/22 15:09:39 msg content:topic=test_kafka,partition=1,offset=15,content=8
    

    5.第二组消费者输出

    #客户端1
    2019/12/22 15:09:05 msg content:topic=test_kafka,partition=1,offset=12,content=2
    2019/12/22 15:09:23 msg content:topic=test_kafka,partition=1,offset=13,content=4
    2019/12/22 15:09:32 msg content:topic=test_kafka,partition=1,offset=14,content=6
    2019/12/22 15:09:32 msg content:topic=test_kafka,partition=1,offset=15,content=8
    
    #客户端2
    2019/12/22 15:08:47 msg content:topic=test_kafka,partition=0,offset=12,content=1
    2019/12/22 15:09:14 msg content:topic=test_kafka,partition=0,offset=13,content=3
    2019/12/22 15:09:32 msg content:topic=test_kafka,partition=0,offset=14,content=5
    2019/12/22 15:09:32 msg content:topic=test_kafka,partition=0,offset=15,content=7
    2019/12/22 15:09:41 msg content:topic=test_kafka,partition=0,offset=16,content=9
    

    6.第三组消费者输出

    #客户端1
    2019/12/22 15:09:04 msg content:topic=test_kafka,partition=1,offset=12,content=2
    2019/12/22 15:09:23 msg content:topic=test_kafka,partition=1,offset=13,content=4
    2019/12/22 15:09:32 msg content:topic=test_kafka,partition=1,offset=14,content=6
    2019/12/22 15:09:32 msg content:topic=test_kafka,partition=1,offset=15,content=8
    
    #客户端2
    2019/12/22 15:08:46 msg content:topic=test_kafka,partition=0,offset=12,content=1
    2019/12/22 15:09:14 msg content:topic=test_kafka,partition=0,offset=13,content=3
    2019/12/22 15:09:32 msg content:topic=test_kafka,partition=0,offset=14,content=5
    2019/12/22 15:09:32 msg content:topic=test_kafka,partition=0,offset=15,content=7
    2019/12/22 15:09:41 msg content:topic=test_kafka,partition=0,offset=16,content=9
    
    #客户端3
    什么也没有
    

    7.结论

    1.消息将会被均匀的分布到不同的分区中 实现了负载均衡和水平扩展
    2.消息会全量落到不同的消费者组
    3.消费者组内的消费者共享一个消费者组ID 组内的消费者共同对一个主题进行订阅和消费
    4.消费者组中的消费者只能消费一个分区的消息 多余的消费者会闲置
  • 相关阅读:
    安卓执行机制JNI、Dalvik、ART之间的比較 。android L 改动执行机制。
    Android studio 导入githubproject
    JS创建对象几种不同方法具体解释
    python 学习笔记 13 -- 经常使用的时间模块之time
    Version和Build的差别
    关于Java基础的一些笔试题总结
    vim编码方式配置的学习和思考
    从头认识java-15.5 使用LinkedHashSet须要注意的地方
    一篇文章,带你明确什么是过拟合,欠拟合以及交叉验证
    Spring -- Bean自己主动装配&Bean之间关系&Bean的作用域
  • 原文地址:https://www.cnblogs.com/alin-qu/p/12079975.html
Copyright © 2020-2023  润新知