kafka 基础

kafka 基础架构

  • kafka 体系结构

  • kafka 多个副本

    名词介绍
    producer生产者、发送数据的一方,负责创建消息,投递到kafka
    consumer消费者、接受数据的一方,负责接受数据,执行业务的逻辑处理
    Consumer Group消费者组、组内可以包含多个消费者,一个消息可以被多个消费者组消费,但是只能被一个消费者组中的消费者消费
    Zookeeper维护和协调 broker,负责 Broker Controller 的选举
    broker服务代理节点
    topic主题、kafka消息以主题为单位进行归类
    partition分区、主题在不同节点的存储,同一主题在不同分区下的消息是不同的
    leader每个分区的leader 负责写入数据
    follower同步leader的数据,备份数据
    ISRISR(In-Sync Replicas) 同步副本列表、OSR(Outof-Sync Replicas)滞后副本、AR(Assigned Replicas)所有副本; AR = ISR + ORS
    HWHigh Watermark 高水位线,特定消息的偏移量,只能拉取这个偏移量之前的消息
    LEOLog End Offset 当前日志文件下一条写入消息的offset,也就是当前日志分区中最后一条消息的offset + 1
    offset commit消费者消费消息之后,提交这个偏移量,每次从这个偏移量开始消费消息,存储在__consumer_offsets中。重复消费/丢失消息
    rebalance再均衡,分区的所属权从一个消费者转移到另外一个消费者的行为。消费者组中消费者添加和删除的时候。为消费组保障高可用和伸缩性
    Broker Controller管理整个集群中 partition和副本 replicas 的状态。leader 宕机后,从 ISR 中选举出(ISR中第一个)一个 Follower 做为新的leader。

搭建kafka集群

  • 安装jdk

    解压完成之后 编辑etc/profile

    # jdk
    export JAVA_HOME=/usr/jdk/jdk1.8.0_144
    export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
    export PATH=$PATH:$JAVA_HOME/bin

    source etc/profile 让环境变量生效 java-version 查看是否配置成功

  • 安装zookeeper

    复制zoo_sample.cfg zoo.cfg

    dataDir=/usr/local/zookeeper/data

    可以修改到自己设定目录

    ./zkServer.sh start

  • 安装kafka

    修改config/server.properties

    broker.id=1
    listeners=PLAINTEXT://localhost:9092
    zookeeper.connect=115.xxx.xxx.xxx:2181
    log.dirs=/tmp/kafka0/logs

    bin/kafka-server-start.sh --daemon config/server.properties 后台线程启动kafka

基础操作

  • kafka 创建topic

    bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic topic-three --replication-factor 3 --partitions 3

    创建topic:topic-three 3个分区 3副本(包含leader)

  • kafka 删除topic

    bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic tpoic-second

  • kafka 显示所有的topic信息

    bin/kafka-topics.sh --zookeeper localhost:2181 --describe

  • kakfa 生产者发送消息

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-three

    这里是指定kafka集群的list,指定其中一个就可以,zookeeper可以找打剩下的节点

  • kafka 消费者接受消息

    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-three --from-beginning

查看信息

  • 查看日志信息 切换到对应的logs目录下

    文件夹 = topic + 分区的id

    包含三个文件:.index、.log、.timeindex、leader-epoch-checkpoint

    可以发现我们的数据就存放在.log中

  • 在zookeeper中查看kafka的信息

    在zookeeper 的bin目录下 执行./zkCli.sh, 可以查看kafka的一些基本信息

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值