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.消费者组中的消费者只能消费一个分区的消息 多余的消费者会闲置
  • 相关阅读:
    jquery实现瀑布文字
    文本域、bootstrap-table显示以及MySQL三者间的换行符问题
    Mybatis框架的搭建和基本使用方法
    解决ajax多次绑定问题
    浅析JSONP与CROS技术解决跨域问题
    使用Ajax+nodejs实现页面头像上传功能
    自写滚屏组件
    express框架的ejs模板引擎渲染html页面
    自写轮播组件
    mousewheel事件细节
  • 原文地址:https://www.cnblogs.com/alin-qu/p/12079975.html
Copyright © 2011-2022 走看看