zoukankan      html  css  js  c++  java
  • 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.消费者组中的消费者只能消费一个分区的消息 多余的消费者会闲置
  • 相关阅读:
    fiximulator
    Maven POM 模板[z]
    Sentinel 实战-控制台篇[z]
    Sentinel 实战-限流篇[z]
    RPC 框架
    如何手写实现简易的Dubbo[z]
    降级、熔断、限流[z]
    Transfix
    Memcached和Memcache安装(64位win7)[z]
    Oracle分区表例子
  • 原文地址:https://www.cnblogs.com/alin-qu/p/12079975.html
Copyright © 2011-2022 走看看