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.消费者组中的消费者只能消费一个分区的消息 多余的消费者会闲置
  • 相关阅读:
    Spring 框架的概述以及Spring中基于XML的IOC配置
    SpringBoot(1)
    C/C++经典程序之打印三角形
    C++构造函数详解(复制构造函数)
    利用函数模板计算并返回数组d 中size个元素的平方和
    C++模板之typename和class关键字的区别
    构造函数与成员函数的区别?
    为什么多数穷人很难逆袭成功
    用递归方式求解这个问题:一只母兔从四岁开始每年生一只小母兔,按此规律,第n年有多少只母兔?
    编写一个函数 reverseDigit(int num).该函数读入一个整数,然后将这个整数的每个位上的数字逆序输出。
  • 原文地址:https://www.cnblogs.com/alin-qu/p/12079975.html
Copyright © 2011-2022 走看看