1.kafka3.x基本概念与安装

kafka简介

kafka是一个开源的分布式事件流平台 Event Streaming Platform,主要用于数据管道,流分析,数据集成和关键任务应用.
事件的发布订阅流式模型,数据可以从其他系统导入或者导出
可靠的流式数据存储能力
可回溯的事件处理能力

  1. kafka将topic分成若干个partition来增加吞吐量
  2. 配合分区的设计,引出消费者组consumer group概念,组内消费者并行消费
  3. 提高可用性每个partition可以添加若干个副本,分布在不同的broker中
  4. kafka可以基于ZK来管理kafka集群,ZK记录leader,2.8x之后kafka也可以不使用ZK

核心概念

  1. Producer: 生产者 向broker发送消息客户端
  2. Consumer: 消费者 从broker中获取消息的客户端
  3. Consumer Group (CG): 由多个消费者构成,消费者组中每个消费者负责不同分区partition中的数据,一个分区partition只能由一个组内消费者消费,消费者组之间互不影响.所有消费者都属于某一个消费者组,消费者组是一种逻辑上的订阅者
  4. Broker: 一个kafka的服务器为一个broker,每一个broker存在多个分区partition,可以存储多个topic
  5. Topic: 主题 类似与一个队列,每个Producer和Consumer都是面向一个topic
  6. Partition: 分区 一个大的topic可以分割成不同的partition从而分布在不同的broker上,并且partition可以存在冗余副本提高了系统的吞吐量和高可用性,每一个partition是一个有序的队列
  7. Replica: 副本 一个Topic中的每一个分区partition存在若干个副本存放在不同的broker中,存在一个Leader和若干个Follower
  8. Leader: 主副本,producer和consumer生成或者消费数据都是从leader从获取
  9. Follower: 从副本,实时从Leader主副本中同步数据,Leader发生故障时,Follower会重新竞选出新的一个Leader

kafka的安装

  1. 下载安装包 https://irrors.tuna.tsinghua.edu.cn/apache/kafka/
  2. 上传到Linux服务器上并解压 tar -zxvf kafka_2.12-3.2.0 -C /usr/local/kafka
  3. 修改配置文件 cd ./config 修改 server.properties
    #broker 的全局唯一编号,不能重复,只能是数字。
    broker.id=0
    #处理网络请求的线程数量
    num.network.threads=3
    #用来处理磁盘 IO 的线程数量
    num.io.threads=8
    #发送套接字的缓冲区大小
    socket.send.buffer.bytes=102400
    #接收套接字的缓冲区大小
    socket.receive.buffer.bytes=102400
    #请求套接字的缓冲区大小
    socket.request.max.bytes=104857600
    #kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以
    配置多个磁盘路径,路径与路径之间可以用","分隔
    log.dirs=/opt/module/kafka/datas
    #topic 在当前 broker 上的分区个数
    num.partitions=1
    #用来恢复和清理 data 下数据的线程数量
    num.recovery.threads.per.data.dir=1
    # 每个 topic 创建时的副本数,默认时 1 个副本
    offsets.topic.replication.factor=1
    #segment 文件保留的最长时间,超时将被删除
    log.retention.hours=168
    #每个 segment 文件的大小,默认最大 1G
    log.segment.bytes=1073741824
    # 检查过期数据的时间,默认 5 分钟检查一次是否数据过期
    log.retention.check.interval.ms=300000
    #配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理)
    zookeeper.connect=zk01:2181,zk02:2181,zk03:2181/kafka
    
  4. 启动 zk
  5. 启动kafka
    bin/kafka-server-start.sh -daemon config/server.properties
    
  6. 验证kafka正确性
    # 创建一个topic
    bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
    # 创建一个producer
    bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
    # 创建一个consumer
    bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
    

命令行操作相关参数介绍

kafka-topics.sh 相关参数
在这里插入图片描述
kafka-console-producer.sh
在这里插入图片描述
kafka-console-consumer.sh
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值