欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Kafka 安装以及相关概念

程序员文章站 2022-07-08 16:03:21
...

实验环境

win10下,使用hyper-v安装虚拟机Ubuntu18。

装机问题

新安装的虚拟机,用于实验kafka服务,不能通过Windows版本的xShell连接到虚拟机。

解决:新虚拟机可能没有安装或没启动sshd服务,通过安装sshd或启动服务解决

sudo apt install openssh-server -y

安装服务

安装jdk

kafka和zookeeper是需要jre运行的,因此需要预先安装jre,推荐安装jdk8或以上。

apt install openjdk-8-jre-headless

# 安装完成后,输入java -version能返回版本号即可

安装zookeeper

  • 通过df -h查找一个空间较大的路径,新建目录zookeeper
  • zookeeper下创建一个app文件夹用于存放源代码,创建一个data目录用于存放数据
  • 在zookeeper目录下执行
    wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

    下载zookeeper项目到当前zookeeper文件夹下

  • 修改配置文件

    cd app/zookeeper-3.4.14/conf

    可以找到zoo_sample.cfg文件,这是一个配置模板,在当前目录复制一份并命名为zoo.cfg

    cp zoo_sample.cfg zoo.cfg

    当前版本只需要修改数据路径即可,Kafka 安装以及相关概念

  • 进到bin文件夹中,执行启动命令

    cd ../bin
    
    ./zkServer.sh start

    Kafka 安装以及相关概念在输出中可以看到,使用了刚才修改过的配置文件

  • 监控2181端口,可以找到进程Kafka 安装以及相关概念

安装kafka

  • 和zookeeper文件夹平级的创建一个kafka文件夹,并在kafka里面再创建一个app文件夹和logs文件夹
  • cd 到kafka文件夹中执行
    wget http://mirror.bit.edu.cn/apache/kafka/2.1.1/kafka_2.12-2.1.1.tgz

    把压缩包解压到app中

    tar zxvf kafka_2.12-2.1.1.tgz -C app/

     

  • 修改配置项

    vim kafka/app/kafka_2.12-2.1.1/config/server.properties

    Kafka 安装以及相关概念Kafka 安装以及相关概念

主要修改log.dirs,这个目录用来持久化消息的。最后面有一个zookeeper的配置,这个需要指向刚刚启动的zookeeper

  • 启动服务 ,cd到kafka/bin下
    ./kafka-server-start.sh -daemon /home/root1/kafka/app/kafka_2.12-2.1.1/config/server.properties
    
    # 可以调用 ./kafka-server-start.sh --help 查看用法

     

  • 创建一个topic

    ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testA

     

  • 查看topic

    ./kafka-topics.sh --zookeeper localhost:2181 --describe --topic testA

    Kafka 安装以及相关概念

  • 发送消息到topic

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

    Kafka 安装以及相关概念

  • 接收刚发送的消息

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

    Kafka 安装以及相关概念

概念

Kafka 安装以及相关概念

broker

中间服务。每个broker代表一个kafka服务,多个broker组成kafka集群。broker接收来自生产者的消息,为消息设置偏移量,并提交消息到磁盘保存。broker为消费者提供服务,对读取分区的请求作出响应,返回已经提交到磁盘上的消息。根据特定的硬件及其性能特征,单个 broker 可以轻松处理数千个分区以及每秒百万级的消息量。

producer

生产者。发送消息,默认的会把指定topic发送到topic对应的partition中(默认是round-robin)。

consumer 

消费者。按指定规则消费发送者发送的消息。

consumerGroup

消费者组。用于消费者分组,每个组可以有多个消费者。组内消费者数量的增减是kafka横向扩容高性能的主要体现。group中的consumer数量最大应该和partition的数量一致,如果consumer数量高于partition的数量,会导致多余的consumer无法利用。由于数据发送比数据接收要快得多,因此也可以启用多个consumerGroup去消费一个partition,保证缓冲区不会溢出。消费者是消费者群组的一部分,也就是说,会有一个或多个消费者共同读取一个主题。群组保证每个分区只能被一个消费者使用。

topic

主题。。主题就好比数据库的表,或者文件系统里的文件夹。是消息的主要标识,用于附着在消息对象上,标识消息应该被什么样的消费者接收。要注意,由于一个主题一般包含几个分区,因此无撞在整个主题范围内保证消息的顺序,但可以保证消息在单个分区内的顺序。

partition

分区。一个topic可以分成多个partition,数据结构类似队列(FIFO),一个topic对应的一堆partition可以存在不同的机器上,通过利用多台机器进行性能扩展。

offset

偏移量。一般用于消费者从partition中取消息时定位用。它是 个不断递增的整数值,在创建消息时, Kafka 会把它添加到消息里。在给定的分区里,每个悄息的偏移量都是唯 的。消费者把每个分区最后读取的悄息偏移量保存在 Zookeeper Kafka 上,如果悄费者关闭或重启,它的读取状态不会丢失。

相关标签: 插件 技术文档